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 wekan(rl) {
41
41
  });
42
42
  // ── Board ───────────────────────────────────────────
43
43
  rl.registerAction("board.create", {
44
+ access: "write",
44
45
  description: "Create a board",
45
46
  inputSchema: {
46
47
  title: { type: "string", required: true },
@@ -51,6 +52,7 @@ export default function wekan(rl) {
51
52
  },
52
53
  });
53
54
  rl.registerAction("board.get", {
55
+ access: "read",
54
56
  description: "Get a board",
55
57
  inputSchema: { boardId: { type: "string", required: true } },
56
58
  async execute(input, ctx) {
@@ -58,6 +60,7 @@ export default function wekan(rl) {
58
60
  },
59
61
  });
60
62
  rl.registerAction("board.list", {
63
+ access: "read",
61
64
  description: "List boards for a user",
62
65
  inputSchema: {
63
66
  userId: { type: "string", required: true },
@@ -70,6 +73,7 @@ export default function wekan(rl) {
70
73
  },
71
74
  });
72
75
  rl.registerAction("board.delete", {
76
+ access: "write",
73
77
  description: "Delete a board",
74
78
  inputSchema: { boardId: { type: "string", required: true } },
75
79
  async execute(input, ctx) {
@@ -78,6 +82,7 @@ export default function wekan(rl) {
78
82
  });
79
83
  // ── List ────────────────────────────────────────────
80
84
  rl.registerAction("list.create", {
85
+ access: "write",
81
86
  description: "Create a list on a board",
82
87
  inputSchema: {
83
88
  boardId: { type: "string", required: true },
@@ -91,6 +96,7 @@ export default function wekan(rl) {
91
96
  },
92
97
  });
93
98
  rl.registerAction("list.get", {
99
+ access: "read",
94
100
  description: "Get a list",
95
101
  inputSchema: {
96
102
  boardId: { type: "string", required: true },
@@ -102,6 +108,7 @@ export default function wekan(rl) {
102
108
  },
103
109
  });
104
110
  rl.registerAction("list.listAll", {
111
+ access: "read",
105
112
  description: "List all lists on a board",
106
113
  inputSchema: {
107
114
  boardId: { type: "string", required: true },
@@ -114,6 +121,7 @@ export default function wekan(rl) {
114
121
  },
115
122
  });
116
123
  rl.registerAction("list.delete", {
124
+ access: "write",
117
125
  description: "Delete a list",
118
126
  inputSchema: {
119
127
  boardId: { type: "string", required: true },
@@ -126,6 +134,7 @@ export default function wekan(rl) {
126
134
  });
127
135
  // ── Card ────────────────────────────────────────────
128
136
  rl.registerAction("card.create", {
137
+ access: "write",
129
138
  description: "Create a card",
130
139
  inputSchema: {
131
140
  boardId: { type: "string", required: true },
@@ -141,6 +150,7 @@ export default function wekan(rl) {
141
150
  },
142
151
  });
143
152
  rl.registerAction("card.get", {
153
+ access: "read",
144
154
  description: "Get a card",
145
155
  inputSchema: {
146
156
  boardId: { type: "string", required: true },
@@ -153,6 +163,7 @@ export default function wekan(rl) {
153
163
  },
154
164
  });
155
165
  rl.registerAction("card.list", {
166
+ access: "read",
156
167
  description: "List cards in a list",
157
168
  inputSchema: {
158
169
  boardId: { type: "string", required: true },
@@ -166,6 +177,7 @@ export default function wekan(rl) {
166
177
  },
167
178
  });
168
179
  rl.registerAction("card.update", {
180
+ access: "write",
169
181
  description: "Update a card",
170
182
  inputSchema: {
171
183
  boardId: { type: "string", required: true },
@@ -179,6 +191,7 @@ export default function wekan(rl) {
179
191
  },
180
192
  });
181
193
  rl.registerAction("card.delete", {
194
+ access: "write",
182
195
  description: "Delete a card",
183
196
  inputSchema: {
184
197
  boardId: { type: "string", required: true },
@@ -192,6 +205,7 @@ export default function wekan(rl) {
192
205
  });
193
206
  // ── Card Comment ────────────────────────────────────
194
207
  rl.registerAction("cardComment.create", {
208
+ access: "write",
195
209
  description: "Add a comment to a card",
196
210
  inputSchema: {
197
211
  boardId: { type: "string", required: true },
@@ -205,6 +219,7 @@ export default function wekan(rl) {
205
219
  },
206
220
  });
207
221
  rl.registerAction("cardComment.get", {
222
+ access: "read",
208
223
  description: "Get a comment",
209
224
  inputSchema: {
210
225
  boardId: { type: "string", required: true },
@@ -217,6 +232,7 @@ export default function wekan(rl) {
217
232
  },
218
233
  });
219
234
  rl.registerAction("cardComment.list", {
235
+ access: "read",
220
236
  description: "List comments on a card",
221
237
  inputSchema: {
222
238
  boardId: { type: "string", required: true },
@@ -228,6 +244,7 @@ export default function wekan(rl) {
228
244
  },
229
245
  });
230
246
  rl.registerAction("cardComment.delete", {
247
+ access: "write",
231
248
  description: "Delete a comment",
232
249
  inputSchema: {
233
250
  boardId: { type: "string", required: true },
@@ -241,6 +258,7 @@ export default function wekan(rl) {
241
258
  });
242
259
  // ── Checklist ───────────────────────────────────────
243
260
  rl.registerAction("checklist.create", {
261
+ access: "write",
244
262
  description: "Create a checklist on a card",
245
263
  inputSchema: {
246
264
  boardId: { type: "string", required: true },
@@ -258,6 +276,7 @@ export default function wekan(rl) {
258
276
  },
259
277
  });
260
278
  rl.registerAction("checklist.get", {
279
+ access: "read",
261
280
  description: "Get a checklist",
262
281
  inputSchema: {
263
282
  boardId: { type: "string", required: true },
@@ -270,6 +289,7 @@ export default function wekan(rl) {
270
289
  },
271
290
  });
272
291
  rl.registerAction("checklist.list", {
292
+ access: "read",
273
293
  description: "List checklists on a card",
274
294
  inputSchema: {
275
295
  boardId: { type: "string", required: true },
@@ -281,6 +301,7 @@ export default function wekan(rl) {
281
301
  },
282
302
  });
283
303
  rl.registerAction("checklist.delete", {
304
+ access: "write",
284
305
  description: "Delete a checklist",
285
306
  inputSchema: {
286
307
  boardId: { type: "string", required: true },
@@ -294,6 +315,7 @@ export default function wekan(rl) {
294
315
  });
295
316
  // ── Checklist Item ──────────────────────────────────
296
317
  rl.registerAction("checklistItem.get", {
318
+ access: "read",
297
319
  description: "Get a checklist item",
298
320
  inputSchema: {
299
321
  boardId: { type: "string", required: true },
@@ -307,6 +329,7 @@ export default function wekan(rl) {
307
329
  },
308
330
  });
309
331
  rl.registerAction("checklistItem.update", {
332
+ access: "write",
310
333
  description: "Update a checklist item",
311
334
  inputSchema: {
312
335
  boardId: { type: "string", required: true },
@@ -321,6 +344,7 @@ export default function wekan(rl) {
321
344
  },
322
345
  });
323
346
  rl.registerAction("checklistItem.delete", {
347
+ access: "write",
324
348
  description: "Delete a checklist item",
325
349
  inputSchema: {
326
350
  boardId: { type: "string", required: true },
@@ -30,6 +30,7 @@ async function apiRequest(conn, method, endpoint, body, qs) {
30
30
  }
31
31
  function registerCrud(rl, resource, plural, conn, createSchema) {
32
32
  rl.registerAction(`${resource}.create`, {
33
+ access: "write",
33
34
  description: `Create a ${resource}`,
34
35
  inputSchema: createSchema,
35
36
  async execute(input, ctx) {
@@ -37,6 +38,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
37
38
  },
38
39
  });
39
40
  rl.registerAction(`${resource}.get`, {
41
+ access: "read",
40
42
  description: `Get a ${resource} by ID`,
41
43
  inputSchema: { id: { type: "string", required: true } },
42
44
  async execute(input, ctx) {
@@ -44,6 +46,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
44
46
  },
45
47
  });
46
48
  rl.registerAction(`${resource}.list`, {
49
+ access: "read",
47
50
  description: `List ${plural}`,
48
51
  inputSchema: {
49
52
  limit: { type: "number", required: false },
@@ -63,6 +66,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
63
66
  },
64
67
  });
65
68
  rl.registerAction(`${resource}.update`, {
69
+ access: "write",
66
70
  description: `Update a ${resource}`,
67
71
  inputSchema: {
68
72
  id: { type: "string", required: true },
@@ -74,6 +78,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
74
78
  },
75
79
  });
76
80
  rl.registerAction(`${resource}.delete`, {
81
+ access: "write",
77
82
  description: `Delete a ${resource}`,
78
83
  inputSchema: { id: { type: "string", required: true } },
79
84
  async execute(input, ctx) {
@@ -31,6 +31,7 @@ async function apiRequest(conn, method, endpoint, body, qs) {
31
31
  }
32
32
  function registerContentCrud(rl, resource, plural, conn) {
33
33
  rl.registerAction(`${resource}.create`, {
34
+ access: "write",
34
35
  description: `Create a ${resource}`,
35
36
  inputSchema: {
36
37
  title: { type: "string", required: true },
@@ -47,6 +48,7 @@ function registerContentCrud(rl, resource, plural, conn) {
47
48
  },
48
49
  });
49
50
  rl.registerAction(`${resource}.get`, {
51
+ access: "read",
50
52
  description: `Get a ${resource} by ID`,
51
53
  inputSchema: { id: { type: "string", required: true } },
52
54
  async execute(input, ctx) {
@@ -54,6 +56,7 @@ function registerContentCrud(rl, resource, plural, conn) {
54
56
  },
55
57
  });
56
58
  rl.registerAction(`${resource}.list`, {
59
+ access: "read",
57
60
  description: `List ${plural}`,
58
61
  inputSchema: {
59
62
  limit: { type: "number", required: false },
@@ -76,6 +79,7 @@ function registerContentCrud(rl, resource, plural, conn) {
76
79
  },
77
80
  });
78
81
  rl.registerAction(`${resource}.update`, {
82
+ access: "write",
79
83
  description: `Update a ${resource}`,
80
84
  inputSchema: {
81
85
  id: { type: "string", required: true },
@@ -90,6 +94,7 @@ function registerContentCrud(rl, resource, plural, conn) {
90
94
  },
91
95
  });
92
96
  rl.registerAction(`${resource}.delete`, {
97
+ access: "write",
93
98
  description: `Delete a ${resource}`,
94
99
  inputSchema: {
95
100
  id: { type: "string", required: true },
@@ -131,6 +136,7 @@ export default function wordpress(rl) {
131
136
  registerContentCrud(rl, "page", "pages", getConn);
132
137
  // ── User ────────────────────────────────────────────
133
138
  rl.registerAction("user.create", {
139
+ access: "write",
134
140
  description: "Create a user",
135
141
  inputSchema: {
136
142
  username: { type: "string", required: true },
@@ -143,6 +149,7 @@ export default function wordpress(rl) {
143
149
  },
144
150
  });
145
151
  rl.registerAction("user.get", {
152
+ access: "read",
146
153
  description: "Get a user by ID",
147
154
  inputSchema: { id: { type: "string", required: true } },
148
155
  async execute(input, ctx) {
@@ -150,6 +157,7 @@ export default function wordpress(rl) {
150
157
  },
151
158
  });
152
159
  rl.registerAction("user.list", {
160
+ access: "read",
153
161
  description: "List users",
154
162
  inputSchema: {
155
163
  limit: { type: "number", required: false },
@@ -166,6 +174,7 @@ export default function wordpress(rl) {
166
174
  },
167
175
  });
168
176
  rl.registerAction("user.update", {
177
+ access: "write",
169
178
  description: "Update a user",
170
179
  inputSchema: {
171
180
  id: { type: "string", required: true },
@@ -179,6 +188,7 @@ export default function wordpress(rl) {
179
188
  },
180
189
  });
181
190
  rl.registerAction("user.delete", {
191
+ access: "write",
182
192
  description: "Delete the current user",
183
193
  inputSchema: {
184
194
  reassign: {
@@ -23,6 +23,7 @@ export default function xai(rl) {
23
23
  },
24
24
  });
25
25
  rl.registerAction("image.create", {
26
+ access: "write",
26
27
  description: "Generate an image with xAI Grok Imagine (Aurora). Writes the JPEG(s) to disk and returns their file `path`s (plus any revised prompt) — not base64. Deliver each with send_file using its `path`.",
27
28
  inputSchema: {
28
29
  prompt: {
@@ -47,6 +47,7 @@ export default function xero(rl) {
47
47
  });
48
48
  // ── Invoice ─────────────────────────────────────────
49
49
  rl.registerAction("invoice.create", {
50
+ access: "write",
50
51
  description: "Create an invoice",
51
52
  inputSchema: {
52
53
  Type: {
@@ -93,6 +94,7 @@ export default function xero(rl) {
93
94
  },
94
95
  });
95
96
  rl.registerAction("invoice.get", {
97
+ access: "read",
96
98
  description: "Get an invoice by ID",
97
99
  inputSchema: { invoiceId: { type: "string", required: true } },
98
100
  async execute(input, ctx) {
@@ -101,6 +103,7 @@ export default function xero(rl) {
101
103
  },
102
104
  });
103
105
  rl.registerAction("invoice.list", {
106
+ access: "read",
104
107
  description: "List invoices",
105
108
  inputSchema: {
106
109
  limit: { type: "number", required: false },
@@ -124,6 +127,7 @@ export default function xero(rl) {
124
127
  },
125
128
  });
126
129
  rl.registerAction("invoice.update", {
130
+ access: "write",
127
131
  description: "Update an invoice",
128
132
  inputSchema: {
129
133
  invoiceId: { type: "string", required: true },
@@ -141,6 +145,7 @@ export default function xero(rl) {
141
145
  });
142
146
  // ── Contact ─────────────────────────────────────────
143
147
  rl.registerAction("contact.create", {
148
+ access: "write",
144
149
  description: "Create a contact",
145
150
  inputSchema: {
146
151
  Name: { type: "string", required: true },
@@ -156,6 +161,7 @@ export default function xero(rl) {
156
161
  },
157
162
  });
158
163
  rl.registerAction("contact.get", {
164
+ access: "read",
159
165
  description: "Get a contact by ID",
160
166
  inputSchema: { contactId: { type: "string", required: true } },
161
167
  async execute(input, ctx) {
@@ -164,6 +170,7 @@ export default function xero(rl) {
164
170
  },
165
171
  });
166
172
  rl.registerAction("contact.list", {
173
+ access: "read",
167
174
  description: "List contacts",
168
175
  inputSchema: {
169
176
  limit: { type: "number", required: false },
@@ -183,6 +190,7 @@ export default function xero(rl) {
183
190
  },
184
191
  });
185
192
  rl.registerAction("contact.update", {
193
+ access: "write",
186
194
  description: "Update a contact",
187
195
  inputSchema: {
188
196
  contactId: { type: "string", required: true },
@@ -39,6 +39,7 @@ export default function yourls(rl) {
39
39
  },
40
40
  });
41
41
  rl.registerAction("url.shorten", {
42
+ access: "write",
42
43
  description: "Shorten a URL",
43
44
  inputSchema: {
44
45
  url: { type: "string", required: true },
@@ -60,6 +61,7 @@ export default function yourls(rl) {
60
61
  },
61
62
  });
62
63
  rl.registerAction("url.expand", {
64
+ access: "read",
63
65
  description: "Expand a short URL to its original",
64
66
  inputSchema: { shortUrl: { type: "string", required: true } },
65
67
  async execute(input, ctx) {
@@ -70,6 +72,7 @@ export default function yourls(rl) {
70
72
  },
71
73
  });
72
74
  rl.registerAction("url.stats", {
75
+ access: "read",
73
76
  description: "Get stats for a short URL",
74
77
  inputSchema: { shortUrl: { type: "string", required: true } },
75
78
  async execute(input, ctx) {
@@ -31,6 +31,7 @@ async function api(conn, method, endpoint, body, qs) {
31
31
  }
32
32
  function registerCrud(rl, resource, plural, conn, createSchema) {
33
33
  rl.registerAction(`${resource}.create`, {
34
+ access: "write",
34
35
  description: `Create a ${resource}`,
35
36
  inputSchema: createSchema,
36
37
  async execute(input, ctx) {
@@ -38,6 +39,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
38
39
  },
39
40
  });
40
41
  rl.registerAction(`${resource}.get`, {
42
+ access: "read",
41
43
  description: `Get a ${resource} by ID`,
42
44
  inputSchema: { id: { type: "string", required: true } },
43
45
  async execute(input, ctx) {
@@ -45,6 +47,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
45
47
  },
46
48
  });
47
49
  rl.registerAction(`${resource}.list`, {
50
+ access: "read",
48
51
  description: `List ${plural}`,
49
52
  inputSchema: { limit: { type: "number", required: false } },
50
53
  async execute(input, ctx) {
@@ -54,6 +57,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
54
57
  },
55
58
  });
56
59
  rl.registerAction(`${resource}.update`, {
60
+ access: "write",
57
61
  description: `Update a ${resource}`,
58
62
  inputSchema: {
59
63
  id: { type: "string", required: true },
@@ -65,6 +69,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
65
69
  },
66
70
  });
67
71
  rl.registerAction(`${resource}.delete`, {
72
+ access: "write",
68
73
  description: `Delete a ${resource}`,
69
74
  inputSchema: { id: { type: "string", required: true } },
70
75
  async execute(input, ctx) {
@@ -103,6 +108,7 @@ export default function zammad(rl) {
103
108
  });
104
109
  // ── Ticket (special: includes article) ──────────────
105
110
  rl.registerAction("ticket.create", {
111
+ access: "write",
106
112
  description: "Create a ticket",
107
113
  inputSchema: {
108
114
  title: { type: "string", required: true },
@@ -130,6 +136,7 @@ export default function zammad(rl) {
130
136
  },
131
137
  });
132
138
  rl.registerAction("ticket.get", {
139
+ access: "read",
133
140
  description: "Get a ticket with articles",
134
141
  inputSchema: { id: { type: "string", required: true } },
135
142
  async execute(input, ctx) {
@@ -141,6 +148,7 @@ export default function zammad(rl) {
141
148
  },
142
149
  });
143
150
  rl.registerAction("ticket.list", {
151
+ access: "read",
144
152
  description: "List tickets",
145
153
  inputSchema: { limit: { type: "number", required: false } },
146
154
  async execute(input, ctx) {
@@ -151,6 +159,7 @@ export default function zammad(rl) {
151
159
  },
152
160
  });
153
161
  rl.registerAction("ticket.update", {
162
+ access: "write",
154
163
  description: "Update a ticket",
155
164
  inputSchema: {
156
165
  id: { type: "string", required: true },
@@ -162,6 +171,7 @@ export default function zammad(rl) {
162
171
  },
163
172
  });
164
173
  rl.registerAction("ticket.delete", {
174
+ access: "write",
165
175
  description: "Delete a ticket",
166
176
  inputSchema: { id: { type: "string", required: true } },
167
177
  async execute(input, ctx) {
@@ -171,6 +181,7 @@ export default function zammad(rl) {
171
181
  });
172
182
  // ── User extras ─────────────────────────────────────
173
183
  rl.registerAction("user.getSelf", {
184
+ access: "read",
174
185
  description: "Get the current user",
175
186
  inputSchema: {},
176
187
  async execute(_input, ctx) {
@@ -178,6 +189,7 @@ export default function zammad(rl) {
178
189
  },
179
190
  });
180
191
  rl.registerAction("user.search", {
192
+ access: "read",
181
193
  description: "Search users",
182
194
  inputSchema: {
183
195
  query: { type: "string", required: true },
@@ -55,6 +55,7 @@ export default function zendesk(rl) {
55
55
  });
56
56
  // ── Ticket ──────────────────────────────────────────
57
57
  rl.registerAction("ticket.create", {
58
+ access: "write",
58
59
  description: "Create a ticket",
59
60
  inputSchema: {
60
61
  description: { type: "string", required: true },
@@ -89,6 +90,7 @@ export default function zendesk(rl) {
89
90
  },
90
91
  });
91
92
  rl.registerAction("ticket.get", {
93
+ access: "read",
92
94
  description: "Get a ticket",
93
95
  inputSchema: { id: { type: "string", required: true } },
94
96
  async execute(input, ctx) {
@@ -97,6 +99,7 @@ export default function zendesk(rl) {
97
99
  },
98
100
  });
99
101
  rl.registerAction("ticket.list", {
102
+ access: "read",
100
103
  description: "Search tickets",
101
104
  inputSchema: {
102
105
  query: {
@@ -122,6 +125,7 @@ export default function zendesk(rl) {
122
125
  },
123
126
  });
124
127
  rl.registerAction("ticket.update", {
128
+ access: "write",
125
129
  description: "Update a ticket",
126
130
  inputSchema: {
127
131
  id: { type: "string", required: true },
@@ -140,6 +144,7 @@ export default function zendesk(rl) {
140
144
  },
141
145
  });
142
146
  rl.registerAction("ticket.delete", {
147
+ access: "write",
143
148
  description: "Delete a ticket",
144
149
  inputSchema: { id: { type: "string", required: true } },
145
150
  async execute(input, ctx) {
@@ -149,6 +154,7 @@ export default function zendesk(rl) {
149
154
  });
150
155
  // ── User ────────────────────────────────────────────
151
156
  rl.registerAction("user.create", {
157
+ access: "write",
152
158
  description: "Create a user",
153
159
  inputSchema: {
154
160
  name: { type: "string", required: true },
@@ -163,6 +169,7 @@ export default function zendesk(rl) {
163
169
  },
164
170
  });
165
171
  rl.registerAction("user.get", {
172
+ access: "read",
166
173
  description: "Get a user",
167
174
  inputSchema: { id: { type: "string", required: true } },
168
175
  async execute(input, ctx) {
@@ -171,6 +178,7 @@ export default function zendesk(rl) {
171
178
  },
172
179
  });
173
180
  rl.registerAction("user.list", {
181
+ access: "read",
174
182
  description: "List users",
175
183
  inputSchema: { limit: { type: "number", required: false } },
176
184
  async execute(input, ctx) {
@@ -182,6 +190,7 @@ export default function zendesk(rl) {
182
190
  },
183
191
  });
184
192
  rl.registerAction("user.update", {
193
+ access: "write",
185
194
  description: "Update a user",
186
195
  inputSchema: {
187
196
  id: { type: "string", required: true },
@@ -196,6 +205,7 @@ export default function zendesk(rl) {
196
205
  },
197
206
  });
198
207
  rl.registerAction("user.delete", {
208
+ access: "write",
199
209
  description: "Delete a user",
200
210
  inputSchema: { id: { type: "string", required: true } },
201
211
  async execute(input, ctx) {
@@ -204,6 +214,7 @@ export default function zendesk(rl) {
204
214
  },
205
215
  });
206
216
  rl.registerAction("user.search", {
217
+ access: "read",
207
218
  description: "Search users",
208
219
  inputSchema: {
209
220
  query: { type: "string", required: true },
@@ -220,6 +231,7 @@ export default function zendesk(rl) {
220
231
  });
221
232
  // ── Organization ────────────────────────────────────
222
233
  rl.registerAction("organization.create", {
234
+ access: "write",
223
235
  description: "Create an organization",
224
236
  inputSchema: { name: { type: "string", required: true } },
225
237
  async execute(input, ctx) {
@@ -230,6 +242,7 @@ export default function zendesk(rl) {
230
242
  },
231
243
  });
232
244
  rl.registerAction("organization.get", {
245
+ access: "read",
233
246
  description: "Get an organization",
234
247
  inputSchema: { id: { type: "string", required: true } },
235
248
  async execute(input, ctx) {
@@ -238,6 +251,7 @@ export default function zendesk(rl) {
238
251
  },
239
252
  });
240
253
  rl.registerAction("organization.list", {
254
+ access: "read",
241
255
  description: "List organizations",
242
256
  inputSchema: { limit: { type: "number", required: false } },
243
257
  async execute(input, ctx) {
@@ -249,6 +263,7 @@ export default function zendesk(rl) {
249
263
  },
250
264
  });
251
265
  rl.registerAction("organization.update", {
266
+ access: "write",
252
267
  description: "Update an organization",
253
268
  inputSchema: {
254
269
  id: { type: "string", required: true },
@@ -263,6 +278,7 @@ export default function zendesk(rl) {
263
278
  },
264
279
  });
265
280
  rl.registerAction("organization.delete", {
281
+ access: "write",
266
282
  description: "Delete an organization",
267
283
  inputSchema: { id: { type: "string", required: true } },
268
284
  async execute(input, ctx) {
@@ -272,6 +288,7 @@ export default function zendesk(rl) {
272
288
  });
273
289
  // ── Ticket Field ────────────────────────────────────
274
290
  rl.registerAction("ticketField.get", {
291
+ access: "read",
275
292
  description: "Get a ticket field",
276
293
  inputSchema: { id: { type: "string", required: true } },
277
294
  async execute(input, ctx) {
@@ -280,6 +297,7 @@ export default function zendesk(rl) {
280
297
  },
281
298
  });
282
299
  rl.registerAction("ticketField.list", {
300
+ access: "read",
283
301
  description: "List ticket fields",
284
302
  inputSchema: {},
285
303
  async execute(_input, ctx) {
@@ -44,6 +44,7 @@ const MODULES = {
44
44
  function registerCrmResource(rl, resource, conn) {
45
45
  const mod = MODULES[resource];
46
46
  rl.registerAction(`${resource}.create`, {
47
+ access: "write",
47
48
  description: `Create a ${resource}`,
48
49
  inputSchema: {
49
50
  data: { type: "object", required: true, description: "Record fields" },
@@ -54,6 +55,7 @@ function registerCrmResource(rl, resource, conn) {
54
55
  },
55
56
  });
56
57
  rl.registerAction(`${resource}.get`, {
58
+ access: "read",
57
59
  description: `Get a ${resource} by ID`,
58
60
  inputSchema: { id: { type: "string", required: true } },
59
61
  async execute(input, ctx) {
@@ -62,6 +64,7 @@ function registerCrmResource(rl, resource, conn) {
62
64
  },
63
65
  });
64
66
  rl.registerAction(`${resource}.list`, {
67
+ access: "read",
65
68
  description: `List ${mod}`,
66
69
  inputSchema: {
67
70
  limit: { type: "number", required: false },
@@ -83,6 +86,7 @@ function registerCrmResource(rl, resource, conn) {
83
86
  },
84
87
  });
85
88
  rl.registerAction(`${resource}.update`, {
89
+ access: "write",
86
90
  description: `Update a ${resource}`,
87
91
  inputSchema: {
88
92
  id: { type: "string", required: true },
@@ -96,6 +100,7 @@ function registerCrmResource(rl, resource, conn) {
96
100
  },
97
101
  });
98
102
  rl.registerAction(`${resource}.delete`, {
103
+ access: "write",
99
104
  description: `Delete a ${resource}`,
100
105
  inputSchema: { id: { type: "string", required: true } },
101
106
  async execute(input, ctx) {
@@ -106,6 +111,7 @@ function registerCrmResource(rl, resource, conn) {
106
111
  },
107
112
  });
108
113
  rl.registerAction(`${resource}.upsert`, {
114
+ access: "write",
109
115
  description: `Upsert a ${resource}`,
110
116
  inputSchema: {
111
117
  data: { type: "object", required: true },