runline 0.11.6 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/commands/actions.js +3 -1
  2. package/dist/core/engine.js +3 -0
  3. package/dist/index.d.ts +1 -1
  4. package/dist/plugin/api.d.ts +2 -1
  5. package/dist/plugin/types.d.ts +2 -0
  6. package/dist/plugins/_shared/googleSchemas.js +23 -0
  7. package/dist/plugins/actionNetwork/src/index.js +23 -0
  8. package/dist/plugins/activeCampaign/src/index.js +48 -0
  9. package/dist/plugins/adalo/src/index.js +5 -0
  10. package/dist/plugins/affinity/src/index.js +16 -0
  11. package/dist/plugins/agileCrm/src/index.js +15 -0
  12. package/dist/plugins/airtable/src/index.js +10 -0
  13. package/dist/plugins/airtop/src/index.js +24 -0
  14. package/dist/plugins/apiTemplateIo/src/index.js +4 -0
  15. package/dist/plugins/asana/src/index.js +22 -0
  16. package/dist/plugins/autopilot/src/index.js +11 -0
  17. package/dist/plugins/bambooHr/src/index.js +11 -0
  18. package/dist/plugins/bannerbear/src/index.js +4 -0
  19. package/dist/plugins/baserow/src/index.js +8 -0
  20. package/dist/plugins/beeminder/src/index.js +18 -0
  21. package/dist/plugins/bitly/src/index.js +3 -0
  22. package/dist/plugins/bitwarden/src/index.js +19 -0
  23. package/dist/plugins/box/src/index.js +11 -0
  24. package/dist/plugins/brandfetch/src/index.js +5 -0
  25. package/dist/plugins/brevo/src/index.js +15 -0
  26. package/dist/plugins/bubble/src/index.js +5 -0
  27. package/dist/plugins/chargebee/src/index.js +5 -0
  28. package/dist/plugins/circleci/src/index.js +3 -0
  29. package/dist/plugins/ciscoWebex/src/index.js +10 -0
  30. package/dist/plugins/clearbit/src/index.js +3 -0
  31. package/dist/plugins/clickup/src/index.js +61 -0
  32. package/dist/plugins/clockify/src/index.js +25 -0
  33. package/dist/plugins/cloudflare/src/index.js +4 -0
  34. package/dist/plugins/cockpit/src/index.js +5 -0
  35. package/dist/plugins/coda/src/index.js +18 -0
  36. package/dist/plugins/coingecko/src/index.js +10 -0
  37. package/dist/plugins/contentful/src/index.js +7 -0
  38. package/dist/plugins/convertkit/src/index.js +16 -0
  39. package/dist/plugins/copper/src/index.js +7 -0
  40. package/dist/plugins/cortex/src/index.js +4 -0
  41. package/dist/plugins/currents/src/index.js +22 -0
  42. package/dist/plugins/customerIo/src/index.js +9 -0
  43. package/dist/plugins/databricks/src/index.js +34 -0
  44. package/dist/plugins/deepl/src/index.js +2 -0
  45. package/dist/plugins/demio/src/index.js +4 -0
  46. package/dist/plugins/dhl/src/index.js +1 -0
  47. package/dist/plugins/discord/src/index.js +13 -0
  48. package/dist/plugins/discourse/src/index.js +16 -0
  49. package/dist/plugins/disqus/src/index.js +4 -0
  50. package/dist/plugins/docker/src/index.js +5 -0
  51. package/dist/plugins/drift/src/index.js +5 -0
  52. package/dist/plugins/dropbox/src/index.js +9 -0
  53. package/dist/plugins/dropcontact/src/index.js +2 -0
  54. package/dist/plugins/egoi/src/index.js +4 -0
  55. package/dist/plugins/elasticsearch/src/index.js +9 -0
  56. package/dist/plugins/emelia/src/index.js +9 -0
  57. package/dist/plugins/erpnext/src/index.js +5 -0
  58. package/dist/plugins/facebookGraph/src/index.js +1 -0
  59. package/dist/plugins/freshdesk/src/index.js +10 -0
  60. package/dist/plugins/freshservice/src/index.js +7 -0
  61. package/dist/plugins/freshworksCrm/src/index.js +7 -0
  62. package/dist/plugins/getresponse/src/index.js +5 -0
  63. package/dist/plugins/ghost/src/index.js +5 -0
  64. package/dist/plugins/github/src/index.js +37 -0
  65. package/dist/plugins/gitlab/src/index.js +17 -0
  66. package/dist/plugins/gmail/src/index.js +200 -184
  67. package/dist/plugins/gong/src/index.js +4 -0
  68. package/dist/plugins/googleAppsScript/src/index.js +98 -43
  69. package/dist/plugins/googleCalendar/src/index.js +329 -250
  70. package/dist/plugins/googleContacts/src/index.js +144 -145
  71. package/dist/plugins/googleDocs/src/documents.js +31 -38
  72. package/dist/plugins/googleDocs/src/formatting.js +51 -47
  73. package/dist/plugins/googleDocs/src/images.js +23 -26
  74. package/dist/plugins/googleDocs/src/shared.js +55 -0
  75. package/dist/plugins/googleDocs/src/structure.js +111 -123
  76. package/dist/plugins/googleDocs/src/tables.js +103 -154
  77. package/dist/plugins/googleDocs/src/tabs.js +27 -23
  78. package/dist/plugins/googleDocs/src/text.js +106 -136
  79. package/dist/plugins/googleDrive/src/index.js +461 -408
  80. package/dist/plugins/googleImage/src/index.js +14 -16
  81. package/dist/plugins/googleSheets/src/index.js +527 -339
  82. package/dist/plugins/googleSlides/src/index.js +92 -72
  83. package/dist/plugins/googleTasks/src/index.js +94 -92
  84. package/dist/plugins/gotify/src/index.js +3 -0
  85. package/dist/plugins/gotowebinar/src/index.js +20 -0
  86. package/dist/plugins/grafana/src/index.js +17 -0
  87. package/dist/plugins/graphql/src/index.js +2 -0
  88. package/dist/plugins/grist/src/index.js +4 -0
  89. package/dist/plugins/hackernews/src/index.js +6 -0
  90. package/dist/plugins/halopsa/src/index.js +5 -0
  91. package/dist/plugins/harvest/src/index.js +14 -0
  92. package/dist/plugins/helpscout/src/index.js +13 -0
  93. package/dist/plugins/highlevel/src/index.js +17 -0
  94. package/dist/plugins/homeAssistant/src/index.js +13 -0
  95. package/dist/plugins/hubspot/src/index.js +14 -0
  96. package/dist/plugins/humanticAi/src/index.js +3 -0
  97. package/dist/plugins/hunter/src/index.js +3 -0
  98. package/dist/plugins/intercom/src/index.js +10 -0
  99. package/dist/plugins/iterable/src/index.js +6 -0
  100. package/dist/plugins/jenkins/src/index.js +11 -0
  101. package/dist/plugins/jira/src/index.js +16 -0
  102. package/dist/plugins/keap/src/index.js +28 -0
  103. package/dist/plugins/kobotoolbox/src/index.js +17 -0
  104. package/dist/plugins/lemlist/src/index.js +15 -0
  105. package/dist/plugins/linear/src/attachments.js +6 -0
  106. package/dist/plugins/linear/src/comments.js +5 -0
  107. package/dist/plugins/linear/src/cycles.js +2 -0
  108. package/dist/plugins/linear/src/initiatives.js +5 -0
  109. package/dist/plugins/linear/src/issues.js +14 -0
  110. package/dist/plugins/linear/src/labels.js +5 -0
  111. package/dist/plugins/linear/src/organization.js +1 -0
  112. package/dist/plugins/linear/src/projects.js +11 -0
  113. package/dist/plugins/linear/src/shared.js +2 -0
  114. package/dist/plugins/linear/src/states.js +2 -0
  115. package/dist/plugins/linear/src/teams.js +3 -0
  116. package/dist/plugins/linear/src/users.js +2 -0
  117. package/dist/plugins/linear/src/views.js +4 -0
  118. package/dist/plugins/linear/src/webhooks.js +4 -0
  119. package/dist/plugins/lingvanex/src/index.js +1 -0
  120. package/dist/plugins/linkedin/src/index.js +1 -0
  121. package/dist/plugins/lonescale/src/index.js +4 -0
  122. package/dist/plugins/magento/src/index.js +15 -0
  123. package/dist/plugins/mailcheck/src/index.js +1 -0
  124. package/dist/plugins/mailchimp/src/index.js +14 -0
  125. package/dist/plugins/mailerlite/src/index.js +4 -0
  126. package/dist/plugins/mailgun/src/index.js +1 -0
  127. package/dist/plugins/mailjet/src/index.js +3 -0
  128. package/dist/plugins/mandrill/src/index.js +2 -0
  129. package/dist/plugins/marketstack/src/index.js +3 -0
  130. package/dist/plugins/matrix/src/index.js +10 -0
  131. package/dist/plugins/mattermost/src/index.js +19 -0
  132. package/dist/plugins/mautic/src/index.js +20 -0
  133. package/dist/plugins/medium/src/index.js +3 -0
  134. package/dist/plugins/messagebird/src/index.js +2 -0
  135. package/dist/plugins/metabase/src/index.js +10 -0
  136. package/dist/plugins/microsoftCalendar/src/index.js +2 -0
  137. package/dist/plugins/microsoftFiles/src/index.js +5 -0
  138. package/dist/plugins/microsoftMail/src/index.js +4 -0
  139. package/dist/plugins/misp/src/index.js +44 -0
  140. package/dist/plugins/mocean/src/index.js +2 -0
  141. package/dist/plugins/monday/src/index.js +18 -0
  142. package/dist/plugins/monicaCrm/src/index.js +5 -0
  143. package/dist/plugins/msg91/src/index.js +1 -0
  144. package/dist/plugins/nasa/src/index.js +7 -0
  145. package/dist/plugins/netlify/src/index.js +7 -0
  146. package/dist/plugins/netscalerAdc/src/index.js +3 -0
  147. package/dist/plugins/nextcloud/src/index.js +13 -0
  148. package/dist/plugins/nocodb/src/index.js +5 -0
  149. package/dist/plugins/node/src/index.js +38 -0
  150. package/dist/plugins/notion/src/index.js +14 -0
  151. package/dist/plugins/npm/src/index.js +5 -0
  152. package/dist/plugins/odoo/src/index.js +6 -0
  153. package/dist/plugins/okta/src/index.js +5 -0
  154. package/dist/plugins/oneSimpleApi/src/index.js +10 -0
  155. package/dist/plugins/onfleet/src/index.js +24 -0
  156. package/dist/plugins/openThesaurus/src/index.js +1 -0
  157. package/dist/plugins/openai/src/index.js +1 -0
  158. package/dist/plugins/openweathermap/src/index.js +2 -0
  159. package/dist/plugins/oura/src/index.js +2 -0
  160. package/dist/plugins/paddle/src/index.js +9 -0
  161. package/dist/plugins/pagerduty/src/index.js +9 -0
  162. package/dist/plugins/parallel/src/index.js +1 -0
  163. package/dist/plugins/paypal/src/index.js +4 -0
  164. package/dist/plugins/peekalink/src/index.js +2 -0
  165. package/dist/plugins/phantombuster/src/index.js +5 -0
  166. package/dist/plugins/philipsHue/src/index.js +4 -0
  167. package/dist/plugins/pipedrive/src/index.js +14 -0
  168. package/dist/plugins/plivo/src/index.js +3 -0
  169. package/dist/plugins/postbin/src/index.js +6 -0
  170. package/dist/plugins/posthog/src/index.js +5 -0
  171. package/dist/plugins/profitwell/src/index.js +2 -0
  172. package/dist/plugins/pushbullet/src/index.js +4 -0
  173. package/dist/plugins/pushcut/src/index.js +1 -0
  174. package/dist/plugins/pushover/src/index.js +1 -0
  175. package/dist/plugins/quickbase/src/index.js +8 -0
  176. package/dist/plugins/quickbooks/src/index.js +5 -0
  177. package/dist/plugins/quickchart/src/index.js +1 -0
  178. package/dist/plugins/raindrop/src/index.js +13 -0
  179. package/dist/plugins/recraft/src/index.js +1 -0
  180. package/dist/plugins/reddit/src/index.js +10 -0
  181. package/dist/plugins/replicate/src/index.js +1 -0
  182. package/dist/plugins/rocketchat/src/index.js +1 -0
  183. package/dist/plugins/rundeck/src/index.js +2 -0
  184. package/dist/plugins/salesforce/src/metadata.js +4 -0
  185. package/dist/plugins/salesforce/src/query.js +5 -0
  186. package/dist/plugins/salesforce/src/sobjects.js +12 -0
  187. package/dist/plugins/salesmate/src/index.js +5 -0
  188. package/dist/plugins/securityScorecard/src/index.js +14 -0
  189. package/dist/plugins/segment/src/index.js +4 -0
  190. package/dist/plugins/sendgrid/src/index.js +10 -0
  191. package/dist/plugins/sendy/src/index.js +6 -0
  192. package/dist/plugins/sentry/src/index.js +24 -0
  193. package/dist/plugins/servicenow/src/index.js +10 -0
  194. package/dist/plugins/shiftLabs/src/index.js +6 -0
  195. package/dist/plugins/shiftLabs/src/issues.js +4 -0
  196. package/dist/plugins/shiftLabs/src/pages.js +10 -0
  197. package/dist/plugins/shiftLabs/src/shared.js +2 -0
  198. package/dist/plugins/shiftLabs/src/transcription.js +203 -0
  199. package/dist/plugins/shopify/src/index.js +10 -0
  200. package/dist/plugins/signl4/src/index.js +2 -0
  201. package/dist/plugins/slack/src/index.js +38 -0
  202. package/dist/plugins/sms77/src/index.js +2 -0
  203. package/dist/plugins/splunk/src/index.js +16 -0
  204. package/dist/plugins/spotify/src/index.js +30 -0
  205. package/dist/plugins/stackby/src/index.js +4 -0
  206. package/dist/plugins/steel/src/browser.js +7 -0
  207. package/dist/plugins/steel/src/captchas.js +3 -0
  208. package/dist/plugins/steel/src/credentials.js +4 -0
  209. package/dist/plugins/steel/src/extensions.js +5 -0
  210. package/dist/plugins/steel/src/files.js +10 -0
  211. package/dist/plugins/steel/src/profiles.js +4 -0
  212. package/dist/plugins/steel/src/sessions.js +11 -0
  213. package/dist/plugins/storyblok/src/index.js +7 -0
  214. package/dist/plugins/strapi/src/index.js +5 -0
  215. package/dist/plugins/strava/src/index.js +6 -0
  216. package/dist/plugins/stripe/src/index.js +20 -0
  217. package/dist/plugins/supabase/src/index.js +5 -0
  218. package/dist/plugins/syncromsp/src/index.js +20 -0
  219. package/dist/plugins/tapfiliate/src/index.js +11 -0
  220. package/dist/plugins/telegram/src/index.js +21 -0
  221. package/dist/plugins/thehive/src/index.js +23 -0
  222. package/dist/plugins/thehiveProject/src/index.js +31 -0
  223. package/dist/plugins/todoist/src/index.js +31 -0
  224. package/dist/plugins/together/src/index.js +1 -0
  225. package/dist/plugins/travisci/src/index.js +5 -0
  226. package/dist/plugins/trello/src/index.js +37 -0
  227. package/dist/plugins/twake/src/index.js +1 -0
  228. package/dist/plugins/twilio/src/index.js +2 -0
  229. package/dist/plugins/twist/src/index.js +22 -0
  230. package/dist/plugins/twitter/src/index.js +8 -0
  231. package/dist/plugins/unleashedSoftware/src/index.js +3 -0
  232. package/dist/plugins/uplead/src/index.js +2 -0
  233. package/dist/plugins/uproc/src/index.js +1 -0
  234. package/dist/plugins/uptimerobot/src/index.js +22 -0
  235. package/dist/plugins/urlscanio/src/index.js +3 -0
  236. package/dist/plugins/vercel/src/account.js +1 -0
  237. package/dist/plugins/vercel/src/deployments.js +5 -0
  238. package/dist/plugins/vercel/src/env.js +4 -0
  239. package/dist/plugins/vercel/src/projects.js +2 -0
  240. package/dist/plugins/vercel/src/shared.js +1 -0
  241. package/dist/plugins/vero/src/index.js +6 -0
  242. package/dist/plugins/vonage/src/index.js +1 -0
  243. package/dist/plugins/wekan/src/index.js +24 -0
  244. package/dist/plugins/woocommerce/src/index.js +5 -0
  245. package/dist/plugins/wordpress/src/index.js +10 -0
  246. package/dist/plugins/xai/src/index.js +1 -0
  247. package/dist/plugins/xero/src/index.js +8 -0
  248. package/dist/plugins/yourls/src/index.js +3 -0
  249. package/dist/plugins/zammad/src/index.js +12 -0
  250. package/dist/plugins/zendesk/src/index.js +18 -0
  251. package/dist/plugins/zoho/src/index.js +6 -0
  252. package/dist/plugins/zoom/src/index.js +5 -0
  253. package/dist/plugins/zulip/src/index.js +15 -0
  254. package/dist/sdk.d.ts +2 -1
  255. package/dist/sdk.js +1 -0
  256. package/package.json +1 -1
@@ -49,6 +49,7 @@ export default function highlevel(rl) {
49
49
  });
50
50
  // ── Contact ─────────────────────────────────────────
51
51
  rl.registerAction("contact.upsert", {
52
+ access: "write",
52
53
  description: "Create or update a contact (upsert by email/phone)",
53
54
  inputSchema: {
54
55
  email: { type: "string", required: false },
@@ -87,6 +88,7 @@ export default function highlevel(rl) {
87
88
  },
88
89
  });
89
90
  rl.registerAction("contact.get", {
91
+ access: "read",
90
92
  description: "Get a contact by ID",
91
93
  inputSchema: { id: { type: "string", required: true } },
92
94
  async execute(input, ctx) {
@@ -96,6 +98,7 @@ export default function highlevel(rl) {
96
98
  },
97
99
  });
98
100
  rl.registerAction("contact.list", {
101
+ access: "read",
99
102
  description: "List contacts",
100
103
  inputSchema: {
101
104
  limit: { type: "number", required: false },
@@ -128,6 +131,7 @@ export default function highlevel(rl) {
128
131
  },
129
132
  });
130
133
  rl.registerAction("contact.update", {
134
+ access: "write",
131
135
  description: "Update a contact",
132
136
  inputSchema: {
133
137
  id: { type: "string", required: true },
@@ -157,6 +161,7 @@ export default function highlevel(rl) {
157
161
  },
158
162
  });
159
163
  rl.registerAction("contact.delete", {
164
+ access: "write",
160
165
  description: "Delete a contact",
161
166
  inputSchema: { id: { type: "string", required: true } },
162
167
  async execute(input, ctx) {
@@ -167,6 +172,7 @@ export default function highlevel(rl) {
167
172
  });
168
173
  // ── Opportunity ─────────────────────────────────────
169
174
  rl.registerAction("opportunity.create", {
175
+ access: "write",
170
176
  description: "Create an opportunity",
171
177
  inputSchema: {
172
178
  contactId: { type: "string", required: true },
@@ -202,6 +208,7 @@ export default function highlevel(rl) {
202
208
  },
203
209
  });
204
210
  rl.registerAction("opportunity.get", {
211
+ access: "read",
205
212
  description: "Get an opportunity",
206
213
  inputSchema: { id: { type: "string", required: true } },
207
214
  async execute(input, ctx) {
@@ -210,6 +217,7 @@ export default function highlevel(rl) {
210
217
  },
211
218
  });
212
219
  rl.registerAction("opportunity.list", {
220
+ access: "read",
213
221
  description: "List opportunities",
214
222
  inputSchema: {
215
223
  limit: { type: "number", required: false },
@@ -246,6 +254,7 @@ export default function highlevel(rl) {
246
254
  },
247
255
  });
248
256
  rl.registerAction("opportunity.update", {
257
+ access: "write",
249
258
  description: "Update an opportunity",
250
259
  inputSchema: {
251
260
  id: { type: "string", required: true },
@@ -267,6 +276,7 @@ export default function highlevel(rl) {
267
276
  },
268
277
  });
269
278
  rl.registerAction("opportunity.delete", {
279
+ access: "write",
270
280
  description: "Delete an opportunity",
271
281
  inputSchema: { id: { type: "string", required: true } },
272
282
  async execute(input, ctx) {
@@ -277,6 +287,7 @@ export default function highlevel(rl) {
277
287
  });
278
288
  // ── Task (scoped to contact) ────────────────────────
279
289
  rl.registerAction("task.create", {
290
+ access: "write",
280
291
  description: "Create a task for a contact",
281
292
  inputSchema: {
282
293
  contactId: { type: "string", required: true },
@@ -293,6 +304,7 @@ export default function highlevel(rl) {
293
304
  },
294
305
  });
295
306
  rl.registerAction("task.get", {
307
+ access: "read",
296
308
  description: "Get a task",
297
309
  inputSchema: {
298
310
  contactId: { type: "string", required: true },
@@ -305,6 +317,7 @@ export default function highlevel(rl) {
305
317
  },
306
318
  });
307
319
  rl.registerAction("task.list", {
320
+ access: "read",
308
321
  description: "List tasks for a contact",
309
322
  inputSchema: { contactId: { type: "string", required: true } },
310
323
  async execute(input, ctx) {
@@ -314,6 +327,7 @@ export default function highlevel(rl) {
314
327
  },
315
328
  });
316
329
  rl.registerAction("task.update", {
330
+ access: "write",
317
331
  description: "Update a task",
318
332
  inputSchema: {
319
333
  contactId: { type: "string", required: true },
@@ -331,6 +345,7 @@ export default function highlevel(rl) {
331
345
  },
332
346
  });
333
347
  rl.registerAction("task.delete", {
348
+ access: "write",
334
349
  description: "Delete a task",
335
350
  inputSchema: {
336
351
  contactId: { type: "string", required: true },
@@ -345,6 +360,7 @@ export default function highlevel(rl) {
345
360
  });
346
361
  // ── Calendar ────────────────────────────────────────
347
362
  rl.registerAction("calendar.bookAppointment", {
363
+ access: "write",
348
364
  description: "Book a calendar appointment",
349
365
  inputSchema: {
350
366
  calendarId: { type: "string", required: true },
@@ -372,6 +388,7 @@ export default function highlevel(rl) {
372
388
  },
373
389
  });
374
390
  rl.registerAction("calendar.getFreeSlots", {
391
+ access: "read",
375
392
  description: "Get free slots for a calendar",
376
393
  inputSchema: {
377
394
  calendarId: { type: "string", required: true },
@@ -66,24 +66,28 @@ export default function homeAssistant(rl) {
66
66
  },
67
67
  });
68
68
  rl.registerAction("config.get", {
69
+ access: "read",
69
70
  description: "Get Home Assistant configuration",
70
71
  async execute(_input, ctx) {
71
72
  return ha(ctx, "GET", "/config");
72
73
  },
73
74
  });
74
75
  rl.registerAction("config.check", {
76
+ access: "read",
75
77
  description: "Check if configuration is valid",
76
78
  async execute(_input, ctx) {
77
79
  return ha(ctx, "POST", "/config/core/check_config");
78
80
  },
79
81
  });
80
82
  rl.registerAction("service.list", {
83
+ access: "read",
81
84
  description: "List available services",
82
85
  async execute(_input, ctx) {
83
86
  return ha(ctx, "GET", "/services");
84
87
  },
85
88
  });
86
89
  rl.registerAction("service.call", {
90
+ access: "write",
87
91
  description: "Call a service",
88
92
  inputSchema: {
89
93
  domain: {
@@ -108,12 +112,14 @@ export default function homeAssistant(rl) {
108
112
  },
109
113
  });
110
114
  rl.registerAction("state.list", {
115
+ access: "read",
111
116
  description: "List all entity states",
112
117
  async execute(_input, ctx) {
113
118
  return ha(ctx, "GET", "/states");
114
119
  },
115
120
  });
116
121
  rl.registerAction("state.get", {
122
+ access: "read",
117
123
  description: "Get state of an entity",
118
124
  inputSchema: {
119
125
  entityId: {
@@ -127,6 +133,7 @@ export default function homeAssistant(rl) {
127
133
  },
128
134
  });
129
135
  rl.registerAction("state.set", {
136
+ access: "write",
130
137
  description: "Set/update state of an entity",
131
138
  inputSchema: {
132
139
  entityId: { type: "string", required: true, description: "Entity ID" },
@@ -146,12 +153,14 @@ export default function homeAssistant(rl) {
146
153
  },
147
154
  });
148
155
  rl.registerAction("event.list", {
156
+ access: "read",
149
157
  description: "List event types",
150
158
  async execute(_input, ctx) {
151
159
  return ha(ctx, "GET", "/events");
152
160
  },
153
161
  });
154
162
  rl.registerAction("event.fire", {
163
+ access: "write",
155
164
  description: "Fire an event",
156
165
  inputSchema: {
157
166
  eventType: { type: "string", required: true, description: "Event type" },
@@ -163,12 +172,14 @@ export default function homeAssistant(rl) {
163
172
  },
164
173
  });
165
174
  rl.registerAction("log.getErrors", {
175
+ access: "read",
166
176
  description: "Get error log",
167
177
  async execute(_input, ctx) {
168
178
  return ha(ctx, "GET", "/error_log");
169
179
  },
170
180
  });
171
181
  rl.registerAction("log.getLogbook", {
182
+ access: "read",
172
183
  description: "Get logbook entries",
173
184
  inputSchema: {
174
185
  entityId: {
@@ -201,6 +212,7 @@ export default function homeAssistant(rl) {
201
212
  },
202
213
  });
203
214
  rl.registerAction("template.render", {
215
+ access: "read",
204
216
  description: "Render a Jinja2 template",
205
217
  inputSchema: {
206
218
  template: {
@@ -216,6 +228,7 @@ export default function homeAssistant(rl) {
216
228
  },
217
229
  });
218
230
  rl.registerAction("history.get", {
231
+ access: "read",
219
232
  description: "Get state history for entities",
220
233
  inputSchema: {
221
234
  entityIds: {
@@ -41,6 +41,7 @@ export default function hubspot(rl) {
41
41
  // Helper for CRM objects (contacts, companies, deals, tickets)
42
42
  function registerCrmObject(resource, objectType) {
43
43
  rl.registerAction(`${resource}.create`, {
44
+ access: "write",
44
45
  description: `Create a ${resource}`,
45
46
  inputSchema: {
46
47
  properties: {
@@ -57,6 +58,7 @@ export default function hubspot(rl) {
57
58
  },
58
59
  });
59
60
  rl.registerAction(`${resource}.get`, {
61
+ access: "read",
60
62
  description: `Get a ${resource}`,
61
63
  inputSchema: {
62
64
  id: { type: "string", required: true, description: `${resource} ID` },
@@ -75,6 +77,7 @@ export default function hubspot(rl) {
75
77
  },
76
78
  });
77
79
  rl.registerAction(`${resource}.list`, {
80
+ access: "read",
78
81
  description: `List ${resource}s`,
79
82
  inputSchema: {
80
83
  limit: {
@@ -106,6 +109,7 @@ export default function hubspot(rl) {
106
109
  },
107
110
  });
108
111
  rl.registerAction(`${resource}.update`, {
112
+ access: "write",
109
113
  description: `Update a ${resource}`,
110
114
  inputSchema: {
111
115
  id: { type: "string", required: true, description: `${resource} ID` },
@@ -121,6 +125,7 @@ export default function hubspot(rl) {
121
125
  },
122
126
  });
123
127
  rl.registerAction(`${resource}.delete`, {
128
+ access: "write",
124
129
  description: `Delete a ${resource}`,
125
130
  inputSchema: {
126
131
  id: { type: "string", required: true, description: `${resource} ID` },
@@ -131,6 +136,7 @@ export default function hubspot(rl) {
131
136
  },
132
137
  });
133
138
  rl.registerAction(`${resource}.search`, {
139
+ access: "read",
134
140
  description: `Search ${resource}s`,
135
141
  inputSchema: {
136
142
  filterGroups: {
@@ -165,6 +171,7 @@ export default function hubspot(rl) {
165
171
  registerCrmObject("ticket", "tickets");
166
172
  // ── Contact List ────────────────────────────────────
167
173
  rl.registerAction("contactList.addContacts", {
174
+ access: "write",
168
175
  description: "Add contacts to a list",
169
176
  inputSchema: {
170
177
  listId: { type: "string", required: true, description: "List ID" },
@@ -182,6 +189,7 @@ export default function hubspot(rl) {
182
189
  },
183
190
  });
184
191
  rl.registerAction("contactList.removeContacts", {
192
+ access: "write",
185
193
  description: "Remove contacts from a list",
186
194
  inputSchema: {
187
195
  listId: { type: "string", required: true, description: "List ID" },
@@ -198,6 +206,7 @@ export default function hubspot(rl) {
198
206
  });
199
207
  // ── Engagement ──────────────────────────────────────
200
208
  rl.registerAction("engagement.create", {
209
+ access: "write",
201
210
  description: "Create an engagement (note, email, task, meeting, call)",
202
211
  inputSchema: {
203
212
  type: {
@@ -227,6 +236,7 @@ export default function hubspot(rl) {
227
236
  },
228
237
  });
229
238
  rl.registerAction("engagement.get", {
239
+ access: "read",
230
240
  description: "Get an engagement",
231
241
  inputSchema: {
232
242
  engagementId: {
@@ -240,6 +250,7 @@ export default function hubspot(rl) {
240
250
  },
241
251
  });
242
252
  rl.registerAction("engagement.list", {
253
+ access: "read",
243
254
  description: "List engagements",
244
255
  inputSchema: {
245
256
  limit: { type: "number", required: false, description: "Max results" },
@@ -256,6 +267,7 @@ export default function hubspot(rl) {
256
267
  },
257
268
  });
258
269
  rl.registerAction("engagement.delete", {
270
+ access: "write",
259
271
  description: "Delete an engagement",
260
272
  inputSchema: {
261
273
  engagementId: {
@@ -271,6 +283,7 @@ export default function hubspot(rl) {
271
283
  });
272
284
  // ── Form ────────────────────────────────────────────
273
285
  rl.registerAction("form.submit", {
286
+ access: "write",
274
287
  description: "Submit a HubSpot form",
275
288
  inputSchema: {
276
289
  portalId: {
@@ -299,6 +312,7 @@ export default function hubspot(rl) {
299
312
  },
300
313
  });
301
314
  rl.registerAction("form.getFields", {
315
+ access: "read",
302
316
  description: "Get form fields",
303
317
  inputSchema: {
304
318
  formId: { type: "string", required: true, description: "Form GUID" },
@@ -31,6 +31,7 @@ export default function humanticAi(rl) {
31
31
  },
32
32
  });
33
33
  rl.registerAction("profile.create", {
34
+ access: "write",
34
35
  description: "Create a user profile from LinkedIn URL or text",
35
36
  inputSchema: {
36
37
  userId: {
@@ -60,6 +61,7 @@ export default function humanticAi(rl) {
60
61
  },
61
62
  });
62
63
  rl.registerAction("profile.get", {
64
+ access: "read",
63
65
  description: "Get a user profile/personality analysis",
64
66
  inputSchema: {
65
67
  userId: {
@@ -82,6 +84,7 @@ export default function humanticAi(rl) {
82
84
  },
83
85
  });
84
86
  rl.registerAction("profile.update", {
87
+ access: "write",
85
88
  description: "Update a user profile with new data",
86
89
  inputSchema: {
87
90
  userId: {
@@ -25,6 +25,7 @@ export default function hunter(rl) {
25
25
  },
26
26
  });
27
27
  rl.registerAction("domainSearch", {
28
+ access: "read",
28
29
  description: "Search for email addresses associated with a domain",
29
30
  inputSchema: {
30
31
  domain: {
@@ -51,6 +52,7 @@ export default function hunter(rl) {
51
52
  },
52
53
  });
53
54
  rl.registerAction("emailFinder", {
55
+ access: "read",
54
56
  description: "Find the email address of a person",
55
57
  inputSchema: {
56
58
  domain: { type: "string", required: true, description: "Domain" },
@@ -64,6 +66,7 @@ export default function hunter(rl) {
64
66
  },
65
67
  });
66
68
  rl.registerAction("emailVerifier", {
69
+ access: "read",
67
70
  description: "Verify an email address",
68
71
  inputSchema: {
69
72
  email: { type: "string", required: true, description: "Email to verify" },
@@ -41,6 +41,7 @@ export default function intercom(rl) {
41
41
  const tok = (ctx) => ctx.connection.config.accessToken;
42
42
  // ── Contact (unified leads + users in v2) ───────────
43
43
  rl.registerAction("contact.create", {
44
+ access: "write",
44
45
  description: "Create a contact (lead or user)",
45
46
  inputSchema: {
46
47
  role: { type: "string", required: true, description: "lead or user" },
@@ -75,6 +76,7 @@ export default function intercom(rl) {
75
76
  },
76
77
  });
77
78
  rl.registerAction("contact.get", {
79
+ access: "read",
78
80
  description: "Get a contact by ID",
79
81
  inputSchema: {
80
82
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -84,6 +86,7 @@ export default function intercom(rl) {
84
86
  },
85
87
  });
86
88
  rl.registerAction("contact.list", {
89
+ access: "read",
87
90
  description: "List contacts",
88
91
  inputSchema: {
89
92
  limit: { type: "number", required: false, description: "Max results" },
@@ -104,6 +107,7 @@ export default function intercom(rl) {
104
107
  },
105
108
  });
106
109
  rl.registerAction("contact.update", {
110
+ access: "write",
107
111
  description: "Update a contact",
108
112
  inputSchema: {
109
113
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -131,6 +135,7 @@ export default function intercom(rl) {
131
135
  },
132
136
  });
133
137
  rl.registerAction("contact.delete", {
138
+ access: "write",
134
139
  description: "Delete a contact",
135
140
  inputSchema: {
136
141
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -140,6 +145,7 @@ export default function intercom(rl) {
140
145
  },
141
146
  });
142
147
  rl.registerAction("contact.search", {
148
+ access: "read",
143
149
  description: "Search contacts",
144
150
  inputSchema: {
145
151
  query: {
@@ -163,6 +169,7 @@ export default function intercom(rl) {
163
169
  });
164
170
  // ── Company ─────────────────────────────────────────
165
171
  rl.registerAction("company.create", {
172
+ access: "write",
166
173
  description: "Create or update a company",
167
174
  inputSchema: {
168
175
  companyId: {
@@ -191,6 +198,7 @@ export default function intercom(rl) {
191
198
  },
192
199
  });
193
200
  rl.registerAction("company.get", {
201
+ access: "read",
194
202
  description: "Get a company",
195
203
  inputSchema: {
196
204
  companyId: {
@@ -204,6 +212,7 @@ export default function intercom(rl) {
204
212
  },
205
213
  });
206
214
  rl.registerAction("company.list", {
215
+ access: "read",
207
216
  description: "List companies",
208
217
  inputSchema: {
209
218
  limit: { type: "number", required: false, description: "Max results" },
@@ -220,6 +229,7 @@ export default function intercom(rl) {
220
229
  },
221
230
  });
222
231
  rl.registerAction("company.listUsers", {
232
+ access: "read",
223
233
  description: "List users of a company",
224
234
  inputSchema: {
225
235
  companyId: { type: "string", required: true, description: "Company ID" },
@@ -44,6 +44,7 @@ export default function iterable(rl) {
44
44
  });
45
45
  // ── Event ───────────────────────────────────────────
46
46
  rl.registerAction("event.track", {
47
+ access: "write",
47
48
  description: "Track events for users (bulk). Each event requires email or userId, plus eventName.",
48
49
  inputSchema: {
49
50
  events: {
@@ -62,6 +63,7 @@ export default function iterable(rl) {
62
63
  });
63
64
  // ── User ────────────────────────────────────────────
64
65
  rl.registerAction("user.upsert", {
66
+ access: "write",
65
67
  description: "Create or update a user",
66
68
  inputSchema: {
67
69
  identifier: {
@@ -103,6 +105,7 @@ export default function iterable(rl) {
103
105
  },
104
106
  });
105
107
  rl.registerAction("user.get", {
108
+ access: "read",
106
109
  description: "Get a user by email or userId",
107
110
  inputSchema: {
108
111
  by: {
@@ -127,6 +130,7 @@ export default function iterable(rl) {
127
130
  },
128
131
  });
129
132
  rl.registerAction("user.delete", {
133
+ access: "write",
130
134
  description: "Delete a user by email or userId",
131
135
  inputSchema: {
132
136
  by: {
@@ -151,6 +155,7 @@ export default function iterable(rl) {
151
155
  });
152
156
  // ── User List ───────────────────────────────────────
153
157
  rl.registerAction("userList.add", {
158
+ access: "write",
154
159
  description: "Subscribe users to a list",
155
160
  inputSchema: {
156
161
  listId: { type: "number", required: true, description: "List ID" },
@@ -176,6 +181,7 @@ export default function iterable(rl) {
176
181
  },
177
182
  });
178
183
  rl.registerAction("userList.remove", {
184
+ access: "write",
179
185
  description: "Unsubscribe users from a list",
180
186
  inputSchema: {
181
187
  listId: { type: "number", required: true, description: "List ID" },
@@ -58,6 +58,7 @@ export default function jenkins(rl) {
58
58
  });
59
59
  // ── Job ─────────────────────────────────────────────
60
60
  rl.registerAction("job.trigger", {
61
+ access: "write",
61
62
  description: "Trigger a job build",
62
63
  inputSchema: {
63
64
  jobName: {
@@ -85,6 +86,7 @@ export default function jenkins(rl) {
85
86
  },
86
87
  });
87
88
  rl.registerAction("job.getParameters", {
89
+ access: "read",
88
90
  description: "Get build parameters for a job",
89
91
  inputSchema: {
90
92
  jobName: { type: "string", required: true, description: "Job name" },
@@ -95,6 +97,7 @@ export default function jenkins(rl) {
95
97
  },
96
98
  });
97
99
  rl.registerAction("job.copy", {
100
+ access: "write",
98
101
  description: "Copy/create a job from an existing one",
99
102
  inputSchema: {
100
103
  fromJob: {
@@ -115,6 +118,7 @@ export default function jenkins(rl) {
115
118
  },
116
119
  });
117
120
  rl.registerAction("job.create", {
121
+ access: "write",
118
122
  description: "Create a job from XML config",
119
123
  inputSchema: {
120
124
  name: { type: "string", required: true, description: "Job name" },
@@ -132,6 +136,7 @@ export default function jenkins(rl) {
132
136
  });
133
137
  // ── Build ───────────────────────────────────────────
134
138
  rl.registerAction("build.list", {
139
+ access: "read",
135
140
  description: "List builds for a job",
136
141
  inputSchema: {
137
142
  jobName: { type: "string", required: true, description: "Job name" },
@@ -146,6 +151,7 @@ export default function jenkins(rl) {
146
151
  });
147
152
  // ── Instance ────────────────────────────────────────
148
153
  rl.registerAction("instance.quietDown", {
154
+ access: "write",
149
155
  description: "Put Jenkins into quiet mode (no new builds)",
150
156
  async execute(_input, ctx) {
151
157
  await jk(ctx, "POST", "/quietDown");
@@ -153,6 +159,7 @@ export default function jenkins(rl) {
153
159
  },
154
160
  });
155
161
  rl.registerAction("instance.cancelQuietDown", {
162
+ access: "write",
156
163
  description: "Cancel quiet mode",
157
164
  async execute(_input, ctx) {
158
165
  await jk(ctx, "POST", "/cancelQuietDown");
@@ -160,6 +167,7 @@ export default function jenkins(rl) {
160
167
  },
161
168
  });
162
169
  rl.registerAction("instance.restart", {
170
+ access: "write",
163
171
  description: "Restart Jenkins immediately",
164
172
  async execute(_input, ctx) {
165
173
  await jk(ctx, "POST", "/restart");
@@ -167,6 +175,7 @@ export default function jenkins(rl) {
167
175
  },
168
176
  });
169
177
  rl.registerAction("instance.safeRestart", {
178
+ access: "write",
170
179
  description: "Restart Jenkins after running builds finish",
171
180
  async execute(_input, ctx) {
172
181
  await jk(ctx, "POST", "/safeRestart");
@@ -174,6 +183,7 @@ export default function jenkins(rl) {
174
183
  },
175
184
  });
176
185
  rl.registerAction("instance.exit", {
186
+ access: "write",
177
187
  description: "Shut down Jenkins immediately",
178
188
  async execute(_input, ctx) {
179
189
  await jk(ctx, "POST", "/exit");
@@ -181,6 +191,7 @@ export default function jenkins(rl) {
181
191
  },
182
192
  });
183
193
  rl.registerAction("instance.safeExit", {
194
+ access: "write",
184
195
  description: "Shut down Jenkins after running builds finish",
185
196
  async execute(_input, ctx) {
186
197
  await jk(ctx, "POST", "/safeExit");