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
@@ -60,6 +60,7 @@ export default function affinity(rl) {
60
60
  });
61
61
  // ── List ────────────────────────────────────────────
62
62
  rl.registerAction("list.get", {
63
+ access: "read",
63
64
  description: "Get a specific list",
64
65
  inputSchema: {
65
66
  listId: { type: "string", required: true, description: "List ID" },
@@ -70,6 +71,7 @@ export default function affinity(rl) {
70
71
  },
71
72
  });
72
73
  rl.registerAction("list.list", {
74
+ access: "read",
73
75
  description: "List all lists",
74
76
  inputSchema: {
75
77
  limit: {
@@ -88,6 +90,7 @@ export default function affinity(rl) {
88
90
  });
89
91
  // ── List Entry ──────────────────────────────────────
90
92
  rl.registerAction("listEntry.create", {
93
+ access: "write",
91
94
  description: "Create a new list entry",
92
95
  inputSchema: {
93
96
  listId: { type: "string", required: true, description: "List ID" },
@@ -106,6 +109,7 @@ export default function affinity(rl) {
106
109
  },
107
110
  });
108
111
  rl.registerAction("listEntry.get", {
112
+ access: "read",
109
113
  description: "Get a specific list entry",
110
114
  inputSchema: {
111
115
  listId: { type: "string", required: true, description: "List ID" },
@@ -121,6 +125,7 @@ export default function affinity(rl) {
121
125
  },
122
126
  });
123
127
  rl.registerAction("listEntry.list", {
128
+ access: "read",
124
129
  description: "List all entries in a list",
125
130
  inputSchema: {
126
131
  listId: { type: "string", required: true, description: "List ID" },
@@ -136,6 +141,7 @@ export default function affinity(rl) {
136
141
  },
137
142
  });
138
143
  rl.registerAction("listEntry.delete", {
144
+ access: "write",
139
145
  description: "Delete a list entry",
140
146
  inputSchema: {
141
147
  listId: { type: "string", required: true, description: "List ID" },
@@ -152,6 +158,7 @@ export default function affinity(rl) {
152
158
  });
153
159
  // ── Person ──────────────────────────────────────────
154
160
  rl.registerAction("person.create", {
161
+ access: "write",
155
162
  description: "Create a new person",
156
163
  inputSchema: {
157
164
  firstName: { type: "string", required: true, description: "First name" },
@@ -180,6 +187,7 @@ export default function affinity(rl) {
180
187
  },
181
188
  });
182
189
  rl.registerAction("person.get", {
190
+ access: "read",
183
191
  description: "Get a specific person",
184
192
  inputSchema: {
185
193
  personId: { type: "string", required: true, description: "Person ID" },
@@ -190,6 +198,7 @@ export default function affinity(rl) {
190
198
  },
191
199
  });
192
200
  rl.registerAction("person.list", {
201
+ access: "read",
193
202
  description: "Search/list persons",
194
203
  inputSchema: {
195
204
  term: { type: "string", required: false, description: "Search term" },
@@ -208,6 +217,7 @@ export default function affinity(rl) {
208
217
  },
209
218
  });
210
219
  rl.registerAction("person.update", {
220
+ access: "write",
211
221
  description: "Update a person",
212
222
  inputSchema: {
213
223
  personId: { type: "string", required: true, description: "Person ID" },
@@ -237,6 +247,7 @@ export default function affinity(rl) {
237
247
  },
238
248
  });
239
249
  rl.registerAction("person.delete", {
250
+ access: "write",
240
251
  description: "Delete a person",
241
252
  inputSchema: {
242
253
  personId: { type: "string", required: true, description: "Person ID" },
@@ -248,6 +259,7 @@ export default function affinity(rl) {
248
259
  });
249
260
  // ── Organization ────────────────────────────────────
250
261
  rl.registerAction("organization.create", {
262
+ access: "write",
251
263
  description: "Create a new organization",
252
264
  inputSchema: {
253
265
  name: {
@@ -275,6 +287,7 @@ export default function affinity(rl) {
275
287
  },
276
288
  });
277
289
  rl.registerAction("organization.get", {
290
+ access: "read",
278
291
  description: "Get a specific organization",
279
292
  inputSchema: {
280
293
  organizationId: {
@@ -289,6 +302,7 @@ export default function affinity(rl) {
289
302
  },
290
303
  });
291
304
  rl.registerAction("organization.list", {
305
+ access: "read",
292
306
  description: "Search/list organizations",
293
307
  inputSchema: {
294
308
  term: { type: "string", required: false, description: "Search term" },
@@ -307,6 +321,7 @@ export default function affinity(rl) {
307
321
  },
308
322
  });
309
323
  rl.registerAction("organization.update", {
324
+ access: "write",
310
325
  description: "Update an organization",
311
326
  inputSchema: {
312
327
  organizationId: {
@@ -343,6 +358,7 @@ export default function affinity(rl) {
343
358
  },
344
359
  });
345
360
  rl.registerAction("organization.delete", {
361
+ access: "write",
346
362
  description: "Delete an organization",
347
363
  inputSchema: {
348
364
  organizationId: {
@@ -81,6 +81,7 @@ export default function agileCrm(rl) {
81
81
  });
82
82
  // ── Contact ─────────────────────────────────────────
83
83
  rl.registerAction("contact.create", {
84
+ access: "write",
84
85
  description: "Create a new contact",
85
86
  inputSchema: {
86
87
  firstName: { type: "string", required: false, description: "First name" },
@@ -129,6 +130,7 @@ export default function agileCrm(rl) {
129
130
  },
130
131
  });
131
132
  rl.registerAction("contact.get", {
133
+ access: "read",
132
134
  description: "Get a contact by ID",
133
135
  inputSchema: {
134
136
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -140,6 +142,7 @@ export default function agileCrm(rl) {
140
142
  },
141
143
  });
142
144
  rl.registerAction("contact.list", {
145
+ access: "read",
143
146
  description: "List/filter contacts",
144
147
  inputSchema: {
145
148
  limit: {
@@ -159,6 +162,7 @@ export default function agileCrm(rl) {
159
162
  },
160
163
  });
161
164
  rl.registerAction("contact.update", {
165
+ access: "write",
162
166
  description: "Update a contact's properties",
163
167
  inputSchema: {
164
168
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -238,6 +242,7 @@ export default function agileCrm(rl) {
238
242
  },
239
243
  });
240
244
  rl.registerAction("contact.delete", {
245
+ access: "write",
241
246
  description: "Delete a contact",
242
247
  inputSchema: {
243
248
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -250,6 +255,7 @@ export default function agileCrm(rl) {
250
255
  });
251
256
  // ── Company ─────────────────────────────────────────
252
257
  rl.registerAction("company.create", {
258
+ access: "write",
253
259
  description: "Create a new company",
254
260
  inputSchema: {
255
261
  name: { type: "string", required: true, description: "Company name" },
@@ -278,6 +284,7 @@ export default function agileCrm(rl) {
278
284
  },
279
285
  });
280
286
  rl.registerAction("company.get", {
287
+ access: "read",
281
288
  description: "Get a company by ID",
282
289
  inputSchema: {
283
290
  companyId: { type: "string", required: true, description: "Company ID" },
@@ -289,6 +296,7 @@ export default function agileCrm(rl) {
289
296
  },
290
297
  });
291
298
  rl.registerAction("company.list", {
299
+ access: "read",
292
300
  description: "List/filter companies",
293
301
  inputSchema: {
294
302
  limit: {
@@ -308,6 +316,7 @@ export default function agileCrm(rl) {
308
316
  },
309
317
  });
310
318
  rl.registerAction("company.update", {
319
+ access: "write",
311
320
  description: "Update a company's properties",
312
321
  inputSchema: {
313
322
  companyId: { type: "string", required: true, description: "Company ID" },
@@ -371,6 +380,7 @@ export default function agileCrm(rl) {
371
380
  },
372
381
  });
373
382
  rl.registerAction("company.delete", {
383
+ access: "write",
374
384
  description: "Delete a company",
375
385
  inputSchema: {
376
386
  companyId: { type: "string", required: true, description: "Company ID" },
@@ -383,6 +393,7 @@ export default function agileCrm(rl) {
383
393
  });
384
394
  // ── Deal ────────────────────────────────────────────
385
395
  rl.registerAction("deal.create", {
396
+ access: "write",
386
397
  description: "Create a new deal",
387
398
  inputSchema: {
388
399
  name: { type: "string", required: true, description: "Deal name" },
@@ -428,6 +439,7 @@ export default function agileCrm(rl) {
428
439
  },
429
440
  });
430
441
  rl.registerAction("deal.get", {
442
+ access: "read",
431
443
  description: "Get a deal by ID",
432
444
  inputSchema: {
433
445
  dealId: { type: "string", required: true, description: "Deal ID" },
@@ -439,6 +451,7 @@ export default function agileCrm(rl) {
439
451
  },
440
452
  });
441
453
  rl.registerAction("deal.list", {
454
+ access: "read",
442
455
  description: "List all deals",
443
456
  inputSchema: {
444
457
  limit: {
@@ -454,6 +467,7 @@ export default function agileCrm(rl) {
454
467
  },
455
468
  });
456
469
  rl.registerAction("deal.update", {
470
+ access: "write",
457
471
  description: "Update a deal",
458
472
  inputSchema: {
459
473
  dealId: { type: "string", required: true, description: "Deal ID" },
@@ -490,6 +504,7 @@ export default function agileCrm(rl) {
490
504
  },
491
505
  });
492
506
  rl.registerAction("deal.delete", {
507
+ access: "write",
493
508
  description: "Delete a deal",
494
509
  inputSchema: {
495
510
  dealId: { type: "string", required: true, description: "Deal ID" },
@@ -81,6 +81,7 @@ export default function airtable(rl) {
81
81
  });
82
82
  // ── Base ────────────────────────────────────────────
83
83
  rl.registerAction("base.list", {
84
+ access: "read",
84
85
  description: "List all accessible bases",
85
86
  inputSchema: {
86
87
  limit: {
@@ -110,6 +111,7 @@ export default function airtable(rl) {
110
111
  },
111
112
  });
112
113
  rl.registerAction("base.getSchema", {
114
+ access: "read",
113
115
  description: "Get the schema (tables and fields) of a base",
114
116
  inputSchema: {
115
117
  baseId: {
@@ -125,6 +127,7 @@ export default function airtable(rl) {
125
127
  });
126
128
  // ── Record ──────────────────────────────────────────
127
129
  rl.registerAction("record.create", {
130
+ access: "write",
128
131
  description: "Create a record in a table",
129
132
  inputSchema: {
130
133
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -153,6 +156,7 @@ export default function airtable(rl) {
153
156
  },
154
157
  });
155
158
  rl.registerAction("record.createMany", {
159
+ access: "write",
156
160
  description: "Create multiple records in a table (batched in groups of 10)",
157
161
  inputSchema: {
158
162
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -181,6 +185,7 @@ export default function airtable(rl) {
181
185
  },
182
186
  });
183
187
  rl.registerAction("record.get", {
188
+ access: "read",
184
189
  description: "Get a single record by ID",
185
190
  inputSchema: {
186
191
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -201,6 +206,7 @@ export default function airtable(rl) {
201
206
  },
202
207
  });
203
208
  rl.registerAction("record.search", {
209
+ access: "read",
204
210
  description: "Search/list records with optional formula filter and sorting",
205
211
  inputSchema: {
206
212
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -248,6 +254,7 @@ export default function airtable(rl) {
248
254
  },
249
255
  });
250
256
  rl.registerAction("record.update", {
257
+ access: "write",
251
258
  description: "Update a record by ID (PATCH — only updates specified fields)",
252
259
  inputSchema: {
253
260
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -277,6 +284,7 @@ export default function airtable(rl) {
277
284
  },
278
285
  });
279
286
  rl.registerAction("record.updateMany", {
287
+ access: "write",
280
288
  description: "Update multiple records (batched in groups of 10)",
281
289
  inputSchema: {
282
290
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -305,6 +313,7 @@ export default function airtable(rl) {
305
313
  },
306
314
  });
307
315
  rl.registerAction("record.upsert", {
316
+ access: "write",
308
317
  description: "Create or update a record based on matching fields (uses Airtable's performUpsert)",
309
318
  inputSchema: {
310
319
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -337,6 +346,7 @@ export default function airtable(rl) {
337
346
  },
338
347
  });
339
348
  rl.registerAction("record.delete", {
349
+ access: "write",
340
350
  description: "Delete a record by ID",
341
351
  inputSchema: {
342
352
  baseId: { type: "string", required: true, description: "Base ID" },
@@ -58,6 +58,7 @@ export default function airtop(rl) {
58
58
  });
59
59
  // ── Session ─────────────────────────────────────────
60
60
  rl.registerAction("session.create", {
61
+ access: "write",
61
62
  description: "Create a new browser session and wait until it's running",
62
63
  inputSchema: {
63
64
  profileName: {
@@ -128,6 +129,7 @@ export default function airtop(rl) {
128
129
  },
129
130
  });
130
131
  rl.registerAction("session.terminate", {
132
+ access: "write",
131
133
  description: "Terminate a browser session",
132
134
  inputSchema: {
133
135
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -139,6 +141,7 @@ export default function airtop(rl) {
139
141
  },
140
142
  });
141
143
  rl.registerAction("session.save", {
144
+ access: "write",
142
145
  description: "Save a browser profile on session termination",
143
146
  inputSchema: {
144
147
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -159,6 +162,7 @@ export default function airtop(rl) {
159
162
  },
160
163
  });
161
164
  rl.registerAction("session.waitForDownload", {
165
+ access: "read",
162
166
  description: "Wait for a file download to become available in a session",
163
167
  inputSchema: {
164
168
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -193,6 +197,7 @@ export default function airtop(rl) {
193
197
  });
194
198
  // ── Window ──────────────────────────────────────────
195
199
  rl.registerAction("window.create", {
200
+ access: "write",
196
201
  description: "Create a new browser window in a session",
197
202
  inputSchema: {
198
203
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -221,6 +226,7 @@ export default function airtop(rl) {
221
226
  },
222
227
  });
223
228
  rl.registerAction("window.close", {
229
+ access: "write",
224
230
  description: "Close a browser window",
225
231
  inputSchema: {
226
232
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -233,6 +239,7 @@ export default function airtop(rl) {
233
239
  },
234
240
  });
235
241
  rl.registerAction("window.load", {
242
+ access: "write",
236
243
  description: "Navigate a window to a URL",
237
244
  inputSchema: {
238
245
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -257,6 +264,7 @@ export default function airtop(rl) {
257
264
  },
258
265
  });
259
266
  rl.registerAction("window.list", {
267
+ access: "read",
260
268
  description: "List all windows in a session",
261
269
  inputSchema: {
262
270
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -267,6 +275,7 @@ export default function airtop(rl) {
267
275
  },
268
276
  });
269
277
  rl.registerAction("window.getLiveView", {
278
+ access: "read",
270
279
  description: "Get the live view URL for a window",
271
280
  inputSchema: {
272
281
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -300,6 +309,7 @@ export default function airtop(rl) {
300
309
  },
301
310
  });
302
311
  rl.registerAction("window.takeScreenshot", {
312
+ access: "write",
303
313
  description: "Take a screenshot of a window (returns base64 data URL)",
304
314
  inputSchema: {
305
315
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -312,6 +322,7 @@ export default function airtop(rl) {
312
322
  });
313
323
  // ── Extraction ──────────────────────────────────────
314
324
  rl.registerAction("extraction.query", {
325
+ access: "write",
315
326
  description: "Query page content using a natural language prompt",
316
327
  inputSchema: {
317
328
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -349,6 +360,7 @@ export default function airtop(rl) {
349
360
  },
350
361
  });
351
362
  rl.registerAction("extraction.scrape", {
363
+ access: "write",
352
364
  description: "Scrape the content of the current page",
353
365
  inputSchema: {
354
366
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -360,6 +372,7 @@ export default function airtop(rl) {
360
372
  },
361
373
  });
362
374
  rl.registerAction("extraction.getPaginated", {
375
+ access: "write",
363
376
  description: "Extract data across paginated pages using a prompt",
364
377
  inputSchema: {
365
378
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -399,6 +412,7 @@ export default function airtop(rl) {
399
412
  });
400
413
  // ── Interaction ─────────────────────────────────────
401
414
  rl.registerAction("interaction.click", {
415
+ access: "write",
402
416
  description: "Click on an element described in natural language",
403
417
  inputSchema: {
404
418
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -423,6 +437,7 @@ export default function airtop(rl) {
423
437
  },
424
438
  });
425
439
  rl.registerAction("interaction.hover", {
440
+ access: "write",
426
441
  description: "Hover over an element described in natural language",
427
442
  inputSchema: {
428
443
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -441,6 +456,7 @@ export default function airtop(rl) {
441
456
  },
442
457
  });
443
458
  rl.registerAction("interaction.type", {
459
+ access: "write",
444
460
  description: "Type text into a browser window, optionally targeting a specific element",
445
461
  inputSchema: {
446
462
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -468,6 +484,7 @@ export default function airtop(rl) {
468
484
  },
469
485
  });
470
486
  rl.registerAction("interaction.fill", {
487
+ access: "write",
471
488
  description: "Fill a form using natural language description of the data",
472
489
  inputSchema: {
473
490
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -492,6 +509,7 @@ export default function airtop(rl) {
492
509
  },
493
510
  });
494
511
  rl.registerAction("interaction.scroll", {
512
+ access: "write",
495
513
  description: "Scroll within a browser window",
496
514
  inputSchema: {
497
515
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -533,6 +551,7 @@ export default function airtop(rl) {
533
551
  });
534
552
  // ── Agent ───────────────────────────────────────────
535
553
  rl.registerAction("agent.run", {
554
+ access: "write",
536
555
  description: "Run an Airtop agent and optionally wait for completion",
537
556
  inputSchema: {
538
557
  agentId: { type: "string", required: true, description: "Agent ID" },
@@ -591,6 +610,7 @@ export default function airtop(rl) {
591
610
  });
592
611
  // ── File ────────────────────────────────────────────
593
612
  rl.registerAction("file.get", {
613
+ access: "read",
594
614
  description: "Get file details by ID",
595
615
  inputSchema: {
596
616
  fileId: { type: "string", required: true, description: "File ID" },
@@ -601,6 +621,7 @@ export default function airtop(rl) {
601
621
  },
602
622
  });
603
623
  rl.registerAction("file.list", {
624
+ access: "read",
604
625
  description: "List files, optionally filtered by session",
605
626
  inputSchema: {
606
627
  sessionIds: {
@@ -625,6 +646,7 @@ export default function airtop(rl) {
625
646
  },
626
647
  });
627
648
  rl.registerAction("file.delete", {
649
+ access: "write",
628
650
  description: "Delete a file by ID",
629
651
  inputSchema: {
630
652
  fileId: { type: "string", required: true, description: "File ID" },
@@ -636,6 +658,7 @@ export default function airtop(rl) {
636
658
  },
637
659
  });
638
660
  rl.registerAction("file.upload", {
661
+ access: "write",
639
662
  description: "Upload a file from a URL to a session",
640
663
  inputSchema: {
641
664
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -698,6 +721,7 @@ export default function airtop(rl) {
698
721
  },
699
722
  });
700
723
  rl.registerAction("file.load", {
724
+ access: "write",
701
725
  description: "Load an existing file into a session and trigger file input",
702
726
  inputSchema: {
703
727
  sessionId: { type: "string", required: true, description: "Session ID" },
@@ -39,12 +39,14 @@ export default function apiTemplateIo(rl) {
39
39
  },
40
40
  });
41
41
  rl.registerAction("account.get", {
42
+ access: "read",
42
43
  description: "Get account information",
43
44
  async execute(_input, ctx) {
44
45
  return apiRequest(getKey(ctx), "GET", "/account-information");
45
46
  },
46
47
  });
47
48
  rl.registerAction("template.list", {
49
+ access: "read",
48
50
  description: "List all templates",
49
51
  inputSchema: {
50
52
  format: {
@@ -63,6 +65,7 @@ export default function apiTemplateIo(rl) {
63
65
  },
64
66
  });
65
67
  rl.registerAction("image.create", {
68
+ access: "write",
66
69
  description: "Create an image from a template",
67
70
  inputSchema: {
68
71
  templateId: {
@@ -85,6 +88,7 @@ export default function apiTemplateIo(rl) {
85
88
  },
86
89
  });
87
90
  rl.registerAction("pdf.create", {
91
+ access: "write",
88
92
  description: "Create a PDF from a template",
89
93
  inputSchema: {
90
94
  templateId: {