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
@@ -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");
@@ -65,6 +65,7 @@ export default function jira(rl) {
65
65
  });
66
66
  // ── Issue ───────────────────────────────────────────
67
67
  rl.registerAction("issue.create", {
68
+ access: "write",
68
69
  description: "Create an issue",
69
70
  inputSchema: {
70
71
  projectKey: {
@@ -128,6 +129,7 @@ export default function jira(rl) {
128
129
  },
129
130
  });
130
131
  rl.registerAction("issue.get", {
132
+ access: "read",
131
133
  description: "Get an issue",
132
134
  inputSchema: {
133
135
  issueKey: {
@@ -157,6 +159,7 @@ export default function jira(rl) {
157
159
  },
158
160
  });
159
161
  rl.registerAction("issue.search", {
162
+ access: "read",
160
163
  description: "Search issues using JQL (uses /rest/api/3/search/jql; pagination is cursor-based via nextPageToken)",
161
164
  inputSchema: {
162
165
  jql: { type: "string", required: true, description: "JQL query" },
@@ -202,6 +205,7 @@ export default function jira(rl) {
202
205
  },
203
206
  });
204
207
  rl.registerAction("issue.update", {
208
+ access: "write",
205
209
  description: "Update an issue",
206
210
  inputSchema: {
207
211
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -230,6 +234,7 @@ export default function jira(rl) {
230
234
  },
231
235
  });
232
236
  rl.registerAction("issue.delete", {
237
+ access: "write",
233
238
  description: "Delete an issue",
234
239
  inputSchema: {
235
240
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -240,6 +245,7 @@ export default function jira(rl) {
240
245
  },
241
246
  });
242
247
  rl.registerAction("issue.transition", {
248
+ access: "write",
243
249
  description: "Transition an issue to a new status",
244
250
  inputSchema: {
245
251
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -265,6 +271,7 @@ export default function jira(rl) {
265
271
  },
266
272
  });
267
273
  rl.registerAction("issue.getTransitions", {
274
+ access: "read",
268
275
  description: "Get available transitions for an issue",
269
276
  inputSchema: {
270
277
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -274,6 +281,7 @@ export default function jira(rl) {
274
281
  },
275
282
  });
276
283
  rl.registerAction("issue.getChangelog", {
284
+ access: "read",
277
285
  description: "Get issue changelog",
278
286
  inputSchema: {
279
287
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -283,6 +291,7 @@ export default function jira(rl) {
283
291
  },
284
292
  });
285
293
  rl.registerAction("issue.notify", {
294
+ access: "write",
286
295
  description: "Send notification about an issue",
287
296
  inputSchema: {
288
297
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -305,6 +314,7 @@ export default function jira(rl) {
305
314
  });
306
315
  // ── Issue Comment ───────────────────────────────────
307
316
  rl.registerAction("issueComment.add", {
317
+ access: "write",
308
318
  description: "Add a comment to an issue",
309
319
  inputSchema: {
310
320
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -318,6 +328,7 @@ export default function jira(rl) {
318
328
  },
319
329
  });
320
330
  rl.registerAction("issueComment.get", {
331
+ access: "read",
321
332
  description: "Get a comment",
322
333
  inputSchema: {
323
334
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -329,6 +340,7 @@ export default function jira(rl) {
329
340
  },
330
341
  });
331
342
  rl.registerAction("issueComment.list", {
343
+ access: "read",
332
344
  description: "List comments on an issue",
333
345
  inputSchema: {
334
346
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -338,6 +350,7 @@ export default function jira(rl) {
338
350
  },
339
351
  });
340
352
  rl.registerAction("issueComment.update", {
353
+ access: "write",
341
354
  description: "Update a comment",
342
355
  inputSchema: {
343
356
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -352,6 +365,7 @@ export default function jira(rl) {
352
365
  },
353
366
  });
354
367
  rl.registerAction("issueComment.delete", {
368
+ access: "write",
355
369
  description: "Delete a comment",
356
370
  inputSchema: {
357
371
  issueKey: { type: "string", required: true, description: "Issue key" },
@@ -365,6 +379,7 @@ export default function jira(rl) {
365
379
  });
366
380
  // ── User ────────────────────────────────────────────
367
381
  rl.registerAction("user.get", {
382
+ access: "read",
368
383
  description: "Get a user by account ID",
369
384
  inputSchema: {
370
385
  accountId: { type: "string", required: true, description: "Account ID" },
@@ -376,6 +391,7 @@ export default function jira(rl) {
376
391
  },
377
392
  });
378
393
  rl.registerAction("user.search", {
394
+ access: "read",
379
395
  description: "Search users",
380
396
  inputSchema: {
381
397
  query: { type: "string", required: true, description: "Search query" },
@@ -56,6 +56,7 @@ export default function keap(rl) {
56
56
  const tok = (ctx) => ctx.connection.config.accessToken;
57
57
  // ── Company ─────────────────────────────────────────
58
58
  rl.registerAction("company.create", {
59
+ access: "write",
59
60
  description: "Create a company",
60
61
  inputSchema: {
61
62
  companyName: {
@@ -99,6 +100,7 @@ export default function keap(rl) {
99
100
  },
100
101
  });
101
102
  rl.registerAction("company.list", {
103
+ access: "read",
102
104
  description: "List companies",
103
105
  inputSchema: {
104
106
  limit: {
@@ -128,6 +130,7 @@ export default function keap(rl) {
128
130
  });
129
131
  // ── Contact ─────────────────────────────────────────
130
132
  rl.registerAction("contact.upsert", {
133
+ access: "write",
131
134
  description: "Create or update a contact (PUT). Duplicate matching is controlled by duplicate_option.",
132
135
  inputSchema: {
133
136
  duplicateOption: {
@@ -193,6 +196,7 @@ export default function keap(rl) {
193
196
  },
194
197
  });
195
198
  rl.registerAction("contact.get", {
199
+ access: "read",
196
200
  description: "Get a contact by ID",
197
201
  inputSchema: {
198
202
  contactId: { type: "number", required: true },
@@ -211,6 +215,7 @@ export default function keap(rl) {
211
215
  },
212
216
  });
213
217
  rl.registerAction("contact.list", {
218
+ access: "read",
214
219
  description: "List contacts",
215
220
  inputSchema: {
216
221
  limit: { type: "number", required: false },
@@ -250,6 +255,7 @@ export default function keap(rl) {
250
255
  },
251
256
  });
252
257
  rl.registerAction("contact.delete", {
258
+ access: "write",
253
259
  description: "Delete a contact",
254
260
  inputSchema: { contactId: { type: "number", required: true } },
255
261
  async execute(input, ctx) {
@@ -259,6 +265,7 @@ export default function keap(rl) {
259
265
  });
260
266
  // ── Contact Note ────────────────────────────────────
261
267
  rl.registerAction("contactNote.create", {
268
+ access: "write",
262
269
  description: "Create a note on a contact",
263
270
  inputSchema: {
264
271
  userId: {
@@ -291,6 +298,7 @@ export default function keap(rl) {
291
298
  },
292
299
  });
293
300
  rl.registerAction("contactNote.get", {
301
+ access: "read",
294
302
  description: "Get a note",
295
303
  inputSchema: { noteId: { type: "number", required: true } },
296
304
  async execute(input, ctx) {
@@ -298,6 +306,7 @@ export default function keap(rl) {
298
306
  },
299
307
  });
300
308
  rl.registerAction("contactNote.list", {
309
+ access: "read",
301
310
  description: "List notes (optionally filtered by contact_id, user_id)",
302
311
  inputSchema: {
303
312
  limit: { type: "number", required: false },
@@ -326,6 +335,7 @@ export default function keap(rl) {
326
335
  },
327
336
  });
328
337
  rl.registerAction("contactNote.update", {
338
+ access: "write",
329
339
  description: "Update a note",
330
340
  inputSchema: {
331
341
  noteId: { type: "number", required: true },
@@ -346,6 +356,7 @@ export default function keap(rl) {
346
356
  },
347
357
  });
348
358
  rl.registerAction("contactNote.delete", {
359
+ access: "write",
349
360
  description: "Delete a note",
350
361
  inputSchema: { noteId: { type: "number", required: true } },
351
362
  async execute(input, ctx) {
@@ -355,6 +366,7 @@ export default function keap(rl) {
355
366
  });
356
367
  // ── Contact Tag ─────────────────────────────────────
357
368
  rl.registerAction("contactTag.add", {
369
+ access: "write",
358
370
  description: "Apply tags to a contact",
359
371
  inputSchema: {
360
372
  contactId: { type: "number", required: true },
@@ -372,6 +384,7 @@ export default function keap(rl) {
372
384
  },
373
385
  });
374
386
  rl.registerAction("contactTag.remove", {
387
+ access: "write",
375
388
  description: "Remove tags from a contact",
376
389
  inputSchema: {
377
390
  contactId: { type: "number", required: true },
@@ -388,6 +401,7 @@ export default function keap(rl) {
388
401
  },
389
402
  });
390
403
  rl.registerAction("contactTag.list", {
404
+ access: "read",
391
405
  description: "List tags on a contact",
392
406
  inputSchema: {
393
407
  contactId: { type: "number", required: true },
@@ -404,6 +418,7 @@ export default function keap(rl) {
404
418
  });
405
419
  // ── E-commerce Order ────────────────────────────────
406
420
  rl.registerAction("order.create", {
421
+ access: "write",
407
422
  description: "Create an order",
408
423
  inputSchema: {
409
424
  contactId: { type: "number", required: true },
@@ -443,6 +458,7 @@ export default function keap(rl) {
443
458
  },
444
459
  });
445
460
  rl.registerAction("order.get", {
461
+ access: "read",
446
462
  description: "Get an order",
447
463
  inputSchema: { orderId: { type: "number", required: true } },
448
464
  async execute(input, ctx) {
@@ -450,6 +466,7 @@ export default function keap(rl) {
450
466
  },
451
467
  });
452
468
  rl.registerAction("order.list", {
469
+ access: "read",
453
470
  description: "List orders",
454
471
  inputSchema: {
455
472
  limit: { type: "number", required: false },
@@ -473,6 +490,7 @@ export default function keap(rl) {
473
490
  },
474
491
  });
475
492
  rl.registerAction("order.delete", {
493
+ access: "write",
476
494
  description: "Delete an order",
477
495
  inputSchema: { orderId: { type: "number", required: true } },
478
496
  async execute(input, ctx) {
@@ -482,6 +500,7 @@ export default function keap(rl) {
482
500
  });
483
501
  // ── E-commerce Product ──────────────────────────────
484
502
  rl.registerAction("product.create", {
503
+ access: "write",
485
504
  description: "Create a product",
486
505
  inputSchema: {
487
506
  productName: { type: "string", required: true },
@@ -500,6 +519,7 @@ export default function keap(rl) {
500
519
  },
501
520
  });
502
521
  rl.registerAction("product.get", {
522
+ access: "read",
503
523
  description: "Get a product",
504
524
  inputSchema: { productId: { type: "number", required: true } },
505
525
  async execute(input, ctx) {
@@ -507,6 +527,7 @@ export default function keap(rl) {
507
527
  },
508
528
  });
509
529
  rl.registerAction("product.list", {
530
+ access: "read",
510
531
  description: "List products",
511
532
  inputSchema: { limit: { type: "number", required: false } },
512
533
  async execute(input, ctx) {
@@ -518,6 +539,7 @@ export default function keap(rl) {
518
539
  },
519
540
  });
520
541
  rl.registerAction("product.delete", {
542
+ access: "write",
521
543
  description: "Delete a product",
522
544
  inputSchema: { productId: { type: "number", required: true } },
523
545
  async execute(input, ctx) {
@@ -527,6 +549,7 @@ export default function keap(rl) {
527
549
  });
528
550
  // ── Email ───────────────────────────────────────────
529
551
  rl.registerAction("email.createRecord", {
552
+ access: "write",
530
553
  description: "Create an email record (log a sent email)",
531
554
  inputSchema: {
532
555
  sentFromAddress: { type: "string", required: true },
@@ -549,6 +572,7 @@ export default function keap(rl) {
549
572
  },
550
573
  });
551
574
  rl.registerAction("email.delete", {
575
+ access: "write",
552
576
  description: "Delete an email record",
553
577
  inputSchema: { emailRecordId: { type: "number", required: true } },
554
578
  async execute(input, ctx) {
@@ -557,6 +581,7 @@ export default function keap(rl) {
557
581
  },
558
582
  });
559
583
  rl.registerAction("email.list", {
584
+ access: "read",
560
585
  description: "List email records",
561
586
  inputSchema: {
562
587
  limit: { type: "number", required: false },
@@ -580,6 +605,7 @@ export default function keap(rl) {
580
605
  },
581
606
  });
582
607
  rl.registerAction("email.send", {
608
+ access: "write",
583
609
  description: "Queue an email to be sent",
584
610
  inputSchema: {
585
611
  userId: {
@@ -620,6 +646,7 @@ export default function keap(rl) {
620
646
  });
621
647
  // ── File ────────────────────────────────────────────
622
648
  rl.registerAction("file.delete", {
649
+ access: "write",
623
650
  description: "Delete a file",
624
651
  inputSchema: { fileId: { type: "number", required: true } },
625
652
  async execute(input, ctx) {
@@ -628,6 +655,7 @@ export default function keap(rl) {
628
655
  },
629
656
  });
630
657
  rl.registerAction("file.list", {
658
+ access: "read",
631
659
  description: "List files",
632
660
  inputSchema: {
633
661
  limit: { type: "number", required: false },
@@ -77,6 +77,7 @@ export default function kobotoolbox(rl) {
77
77
  });
78
78
  // ── Form ────────────────────────────────────────────
79
79
  rl.registerAction("form.get", {
80
+ access: "read",
80
81
  description: "Get a form (asset) by ID",
81
82
  inputSchema: {
82
83
  formId: { type: "string", required: true, description: "Form/asset UID" },
@@ -87,6 +88,7 @@ export default function kobotoolbox(rl) {
87
88
  },
88
89
  });
89
90
  rl.registerAction("form.list", {
91
+ access: "read",
90
92
  description: "List all forms/assets",
91
93
  inputSchema: {
92
94
  limit: { type: "number", required: false },
@@ -122,6 +124,7 @@ export default function kobotoolbox(rl) {
122
124
  },
123
125
  });
124
126
  rl.registerAction("form.redeploy", {
127
+ access: "write",
125
128
  description: "Redeploy a form",
126
129
  inputSchema: { formId: { type: "string", required: true } },
127
130
  async execute(input, ctx) {
@@ -131,6 +134,7 @@ export default function kobotoolbox(rl) {
131
134
  });
132
135
  // ── Submission ──────────────────────────────────────
133
136
  rl.registerAction("submission.get", {
137
+ access: "read",
134
138
  description: "Get a submission by ID",
135
139
  inputSchema: {
136
140
  formId: { type: "string", required: true },
@@ -151,6 +155,7 @@ export default function kobotoolbox(rl) {
151
155
  },
152
156
  });
153
157
  rl.registerAction("submission.list", {
158
+ access: "read",
154
159
  description: "List submissions for a form",
155
160
  inputSchema: {
156
161
  formId: { type: "string", required: true },
@@ -186,6 +191,7 @@ export default function kobotoolbox(rl) {
186
191
  },
187
192
  });
188
193
  rl.registerAction("submission.delete", {
194
+ access: "write",
189
195
  description: "Delete a submission",
190
196
  inputSchema: {
191
197
  formId: { type: "string", required: true },
@@ -199,6 +205,7 @@ export default function kobotoolbox(rl) {
199
205
  },
200
206
  });
201
207
  rl.registerAction("submission.getValidation", {
208
+ access: "read",
202
209
  description: "Get the validation status of a submission",
203
210
  inputSchema: {
204
211
  formId: { type: "string", required: true },
@@ -211,6 +218,7 @@ export default function kobotoolbox(rl) {
211
218
  },
212
219
  });
213
220
  rl.registerAction("submission.setValidation", {
221
+ access: "write",
214
222
  description: "Set the validation status of a submission",
215
223
  inputSchema: {
216
224
  formId: { type: "string", required: true },
@@ -229,6 +237,7 @@ export default function kobotoolbox(rl) {
229
237
  });
230
238
  // ── Hook ────────────────────────────────────────────
231
239
  rl.registerAction("hook.get", {
240
+ access: "read",
232
241
  description: "Get a hook by ID",
233
242
  inputSchema: {
234
243
  formId: { type: "string", required: true },
@@ -241,6 +250,7 @@ export default function kobotoolbox(rl) {
241
250
  },
242
251
  });
243
252
  rl.registerAction("hook.list", {
253
+ access: "read",
244
254
  description: "List hooks for a form",
245
255
  inputSchema: {
246
256
  formId: { type: "string", required: true },
@@ -255,6 +265,7 @@ export default function kobotoolbox(rl) {
255
265
  },
256
266
  });
257
267
  rl.registerAction("hook.retryAll", {
268
+ access: "write",
258
269
  description: "Retry all failed attempts for a hook",
259
270
  inputSchema: {
260
271
  formId: { type: "string", required: true },
@@ -267,6 +278,7 @@ export default function kobotoolbox(rl) {
267
278
  },
268
279
  });
269
280
  rl.registerAction("hook.getLogs", {
281
+ access: "read",
270
282
  description: "Get logs for a hook",
271
283
  inputSchema: {
272
284
  formId: { type: "string", required: true },
@@ -301,6 +313,7 @@ export default function kobotoolbox(rl) {
301
313
  },
302
314
  });
303
315
  rl.registerAction("hook.retryOne", {
316
+ access: "write",
304
317
  description: "Retry a single failed hook log entry",
305
318
  inputSchema: {
306
319
  formId: { type: "string", required: true },
@@ -315,6 +328,7 @@ export default function kobotoolbox(rl) {
315
328
  });
316
329
  // ── File ────────────────────────────────────────────
317
330
  rl.registerAction("file.list", {
331
+ access: "read",
318
332
  description: "List media files for a form",
319
333
  inputSchema: { formId: { type: "string", required: true } },
320
334
  async execute(input, ctx) {
@@ -323,6 +337,7 @@ export default function kobotoolbox(rl) {
323
337
  },
324
338
  });
325
339
  rl.registerAction("file.get", {
340
+ access: "read",
326
341
  description: "Get a file's metadata",
327
342
  inputSchema: {
328
343
  formId: { type: "string", required: true },
@@ -335,6 +350,7 @@ export default function kobotoolbox(rl) {
335
350
  },
336
351
  });
337
352
  rl.registerAction("file.delete", {
353
+ access: "write",
338
354
  description: "Delete a file",
339
355
  inputSchema: {
340
356
  formId: { type: "string", required: true },
@@ -347,6 +363,7 @@ export default function kobotoolbox(rl) {
347
363
  },
348
364
  });
349
365
  rl.registerAction("file.createFromUrl", {
366
+ access: "write",
350
367
  description: "Create a file from a URL (redirect-based media)",
351
368
  inputSchema: {
352
369
  formId: { type: "string", required: true },