runline 0.11.5 → 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 (253) 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/index.js +15 -0
  193. package/dist/plugins/shiftLabs/src/issues.js +74 -0
  194. package/dist/plugins/shiftLabs/src/pages.js +148 -0
  195. package/dist/plugins/shiftLabs/src/shared.js +69 -0
  196. package/dist/plugins/shopify/src/index.js +10 -0
  197. package/dist/plugins/signl4/src/index.js +2 -0
  198. package/dist/plugins/slack/src/index.js +38 -0
  199. package/dist/plugins/sms77/src/index.js +2 -0
  200. package/dist/plugins/splunk/src/index.js +16 -0
  201. package/dist/plugins/spotify/src/index.js +30 -0
  202. package/dist/plugins/stackby/src/index.js +4 -0
  203. package/dist/plugins/steel/src/browser.js +7 -0
  204. package/dist/plugins/steel/src/captchas.js +3 -0
  205. package/dist/plugins/steel/src/credentials.js +4 -0
  206. package/dist/plugins/steel/src/extensions.js +5 -0
  207. package/dist/plugins/steel/src/files.js +10 -0
  208. package/dist/plugins/steel/src/profiles.js +4 -0
  209. package/dist/plugins/steel/src/sessions.js +11 -0
  210. package/dist/plugins/storyblok/src/index.js +7 -0
  211. package/dist/plugins/strapi/src/index.js +5 -0
  212. package/dist/plugins/strava/src/index.js +6 -0
  213. package/dist/plugins/stripe/src/index.js +20 -0
  214. package/dist/plugins/supabase/src/index.js +5 -0
  215. package/dist/plugins/syncromsp/src/index.js +20 -0
  216. package/dist/plugins/tapfiliate/src/index.js +11 -0
  217. package/dist/plugins/telegram/src/index.js +21 -0
  218. package/dist/plugins/thehive/src/index.js +23 -0
  219. package/dist/plugins/thehiveProject/src/index.js +31 -0
  220. package/dist/plugins/todoist/src/index.js +31 -0
  221. package/dist/plugins/together/src/index.js +1 -0
  222. package/dist/plugins/travisci/src/index.js +5 -0
  223. package/dist/plugins/trello/src/index.js +37 -0
  224. package/dist/plugins/twake/src/index.js +1 -0
  225. package/dist/plugins/twilio/src/index.js +2 -0
  226. package/dist/plugins/twist/src/index.js +22 -0
  227. package/dist/plugins/twitter/src/index.js +8 -0
  228. package/dist/plugins/unleashedSoftware/src/index.js +3 -0
  229. package/dist/plugins/uplead/src/index.js +2 -0
  230. package/dist/plugins/uproc/src/index.js +1 -0
  231. package/dist/plugins/uptimerobot/src/index.js +22 -0
  232. package/dist/plugins/urlscanio/src/index.js +3 -0
  233. package/dist/plugins/vercel/src/account.js +1 -0
  234. package/dist/plugins/vercel/src/deployments.js +5 -0
  235. package/dist/plugins/vercel/src/env.js +4 -0
  236. package/dist/plugins/vercel/src/projects.js +2 -0
  237. package/dist/plugins/vercel/src/shared.js +1 -0
  238. package/dist/plugins/vero/src/index.js +6 -0
  239. package/dist/plugins/vonage/src/index.js +1 -0
  240. package/dist/plugins/wekan/src/index.js +24 -0
  241. package/dist/plugins/woocommerce/src/index.js +5 -0
  242. package/dist/plugins/wordpress/src/index.js +10 -0
  243. package/dist/plugins/xai/src/index.js +1 -0
  244. package/dist/plugins/xero/src/index.js +8 -0
  245. package/dist/plugins/yourls/src/index.js +3 -0
  246. package/dist/plugins/zammad/src/index.js +12 -0
  247. package/dist/plugins/zendesk/src/index.js +18 -0
  248. package/dist/plugins/zoho/src/index.js +6 -0
  249. package/dist/plugins/zoom/src/index.js +5 -0
  250. package/dist/plugins/zulip/src/index.js +15 -0
  251. package/dist/sdk.d.ts +2 -1
  252. package/dist/sdk.js +1 -0
  253. package/package.json +1 -1
@@ -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 },
@@ -37,6 +37,7 @@ export default function zoom(rl) {
37
37
  });
38
38
  const key = (ctx) => ctx.connection.config.accessToken;
39
39
  rl.registerAction("meeting.create", {
40
+ access: "write",
40
41
  description: "Create a Zoom meeting",
41
42
  inputSchema: {
42
43
  topic: { type: "string", required: true },
@@ -85,6 +86,7 @@ export default function zoom(rl) {
85
86
  },
86
87
  });
87
88
  rl.registerAction("meeting.get", {
89
+ access: "read",
88
90
  description: "Get a meeting by ID",
89
91
  inputSchema: { meetingId: { type: "string", required: true } },
90
92
  async execute(input, ctx) {
@@ -92,6 +94,7 @@ export default function zoom(rl) {
92
94
  },
93
95
  });
94
96
  rl.registerAction("meeting.list", {
97
+ access: "read",
95
98
  description: "List meetings for the authenticated user",
96
99
  inputSchema: {
97
100
  limit: { type: "number", required: false },
@@ -113,6 +116,7 @@ export default function zoom(rl) {
113
116
  },
114
117
  });
115
118
  rl.registerAction("meeting.update", {
119
+ access: "write",
116
120
  description: "Update a meeting",
117
121
  inputSchema: {
118
122
  meetingId: { type: "string", required: true },
@@ -146,6 +150,7 @@ export default function zoom(rl) {
146
150
  },
147
151
  });
148
152
  rl.registerAction("meeting.delete", {
153
+ access: "write",
149
154
  description: "Delete a meeting",
150
155
  inputSchema: { meetingId: { type: "string", required: true } },
151
156
  async execute(input, ctx) {
@@ -53,6 +53,7 @@ export default function zulip(rl) {
53
53
  });
54
54
  // ── Message ─────────────────────────────────────────
55
55
  rl.registerAction("message.sendPrivate", {
56
+ access: "write",
56
57
  description: "Send a private/direct message",
57
58
  inputSchema: {
58
59
  to: {
@@ -72,6 +73,7 @@ export default function zulip(rl) {
72
73
  },
73
74
  });
74
75
  rl.registerAction("message.sendStream", {
76
+ access: "write",
75
77
  description: "Send a message to a stream",
76
78
  inputSchema: {
77
79
  stream: {
@@ -93,6 +95,7 @@ export default function zulip(rl) {
93
95
  },
94
96
  });
95
97
  rl.registerAction("message.get", {
98
+ access: "read",
96
99
  description: "Get a message by ID",
97
100
  inputSchema: { messageId: { type: "string", required: true } },
98
101
  async execute(input, ctx) {
@@ -100,6 +103,7 @@ export default function zulip(rl) {
100
103
  },
101
104
  });
102
105
  rl.registerAction("message.update", {
106
+ access: "write",
103
107
  description: "Update a message",
104
108
  inputSchema: {
105
109
  messageId: { type: "string", required: true },
@@ -112,6 +116,7 @@ export default function zulip(rl) {
112
116
  },
113
117
  });
114
118
  rl.registerAction("message.delete", {
119
+ access: "write",
115
120
  description: "Delete a message",
116
121
  inputSchema: { messageId: { type: "string", required: true } },
117
122
  async execute(input, ctx) {
@@ -120,6 +125,7 @@ export default function zulip(rl) {
120
125
  });
121
126
  // ── Stream ──────────────────────────────────────────
122
127
  rl.registerAction("stream.list", {
128
+ access: "read",
123
129
  description: "List all streams",
124
130
  inputSchema: {
125
131
  includePublic: { type: "boolean", required: false },
@@ -137,6 +143,7 @@ export default function zulip(rl) {
137
143
  },
138
144
  });
139
145
  rl.registerAction("stream.listSubscribed", {
146
+ access: "read",
140
147
  description: "List subscribed streams",
141
148
  inputSchema: {},
142
149
  async execute(_input, ctx) {
@@ -145,6 +152,7 @@ export default function zulip(rl) {
145
152
  },
146
153
  });
147
154
  rl.registerAction("stream.create", {
155
+ access: "write",
148
156
  description: "Subscribe to / create a stream",
149
157
  inputSchema: {
150
158
  name: { type: "string", required: true },
@@ -164,6 +172,7 @@ export default function zulip(rl) {
164
172
  },
165
173
  });
166
174
  rl.registerAction("stream.update", {
175
+ access: "write",
167
176
  description: "Update a stream",
168
177
  inputSchema: {
169
178
  streamId: { type: "string", required: true },
@@ -184,6 +193,7 @@ export default function zulip(rl) {
184
193
  },
185
194
  });
186
195
  rl.registerAction("stream.delete", {
196
+ access: "write",
187
197
  description: "Delete a stream",
188
198
  inputSchema: { streamId: { type: "string", required: true } },
189
199
  async execute(input, ctx) {
@@ -192,6 +202,7 @@ export default function zulip(rl) {
192
202
  });
193
203
  // ── User ────────────────────────────────────────────
194
204
  rl.registerAction("user.get", {
205
+ access: "read",
195
206
  description: "Get a user by ID",
196
207
  inputSchema: { userId: { type: "string", required: true } },
197
208
  async execute(input, ctx) {
@@ -199,6 +210,7 @@ export default function zulip(rl) {
199
210
  },
200
211
  });
201
212
  rl.registerAction("user.list", {
213
+ access: "read",
202
214
  description: "List all users",
203
215
  inputSchema: {},
204
216
  async execute(_input, ctx) {
@@ -207,6 +219,7 @@ export default function zulip(rl) {
207
219
  },
208
220
  });
209
221
  rl.registerAction("user.create", {
222
+ access: "write",
210
223
  description: "Create a user",
211
224
  inputSchema: {
212
225
  email: { type: "string", required: true },
@@ -225,6 +238,7 @@ export default function zulip(rl) {
225
238
  },
226
239
  });
227
240
  rl.registerAction("user.update", {
241
+ access: "write",
228
242
  description: "Update a user",
229
243
  inputSchema: {
230
244
  userId: { type: "string", required: true },
@@ -242,6 +256,7 @@ export default function zulip(rl) {
242
256
  },
243
257
  });
244
258
  rl.registerAction("user.deactivate", {
259
+ access: "write",
245
260
  description: "Deactivate a user",
246
261
  inputSchema: { userId: { type: "string", required: true } },
247
262
  async execute(input, ctx) {
package/dist/sdk.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ExecuteResult } from "./core/engine.js";
2
2
  import type { PluginFunction } from "./plugin/api.js";
3
- import type { ConnectionConfig, InputSchema, PluginDef } from "./plugin/types.js";
3
+ import type { ActionAccess, ConnectionConfig, InputSchema, PluginDef } from "./plugin/types.js";
4
4
  export interface RunlineOptions {
5
5
  plugins?: Array<PluginDef | PluginFunction>;
6
6
  connections?: ConnectionConfig[];
@@ -24,6 +24,7 @@ export declare class Runline {
24
24
  actions(): Array<{
25
25
  plugin: string;
26
26
  action: string;
27
+ access?: ActionAccess;
27
28
  description?: string;
28
29
  inputSchema?: InputSchema;
29
30
  }>;
package/dist/sdk.js CHANGED
@@ -44,6 +44,7 @@ export class Runline {
44
44
  return this._registry.getAllActions().map(({ plugin, action }) => ({
45
45
  plugin,
46
46
  action: action.name,
47
+ access: action.access,
47
48
  description: action.description,
48
49
  inputSchema: action.inputSchema,
49
50
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runline",
3
- "version": "0.11.5",
3
+ "version": "0.12.0",
4
4
  "description": "Code mode for agents — turn any API or command into a callable action",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",