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.
- package/dist/commands/actions.js +3 -1
- package/dist/core/engine.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin/api.d.ts +2 -1
- package/dist/plugin/types.d.ts +2 -0
- package/dist/plugins/actionNetwork/src/index.js +23 -0
- package/dist/plugins/activeCampaign/src/index.js +48 -0
- package/dist/plugins/adalo/src/index.js +5 -0
- package/dist/plugins/affinity/src/index.js +16 -0
- package/dist/plugins/agileCrm/src/index.js +15 -0
- package/dist/plugins/airtable/src/index.js +10 -0
- package/dist/plugins/airtop/src/index.js +24 -0
- package/dist/plugins/apiTemplateIo/src/index.js +4 -0
- package/dist/plugins/asana/src/index.js +22 -0
- package/dist/plugins/autopilot/src/index.js +11 -0
- package/dist/plugins/bambooHr/src/index.js +11 -0
- package/dist/plugins/bannerbear/src/index.js +4 -0
- package/dist/plugins/baserow/src/index.js +8 -0
- package/dist/plugins/beeminder/src/index.js +18 -0
- package/dist/plugins/bitly/src/index.js +3 -0
- package/dist/plugins/bitwarden/src/index.js +19 -0
- package/dist/plugins/box/src/index.js +11 -0
- package/dist/plugins/brandfetch/src/index.js +5 -0
- package/dist/plugins/brevo/src/index.js +15 -0
- package/dist/plugins/bubble/src/index.js +5 -0
- package/dist/plugins/chargebee/src/index.js +5 -0
- package/dist/plugins/circleci/src/index.js +3 -0
- package/dist/plugins/ciscoWebex/src/index.js +10 -0
- package/dist/plugins/clearbit/src/index.js +3 -0
- package/dist/plugins/clickup/src/index.js +61 -0
- package/dist/plugins/clockify/src/index.js +25 -0
- package/dist/plugins/cloudflare/src/index.js +4 -0
- package/dist/plugins/cockpit/src/index.js +5 -0
- package/dist/plugins/coda/src/index.js +18 -0
- package/dist/plugins/coingecko/src/index.js +10 -0
- package/dist/plugins/contentful/src/index.js +7 -0
- package/dist/plugins/convertkit/src/index.js +16 -0
- package/dist/plugins/copper/src/index.js +7 -0
- package/dist/plugins/cortex/src/index.js +4 -0
- package/dist/plugins/currents/src/index.js +22 -0
- package/dist/plugins/customerIo/src/index.js +9 -0
- package/dist/plugins/databricks/src/index.js +34 -0
- package/dist/plugins/deepl/src/index.js +2 -0
- package/dist/plugins/demio/src/index.js +4 -0
- package/dist/plugins/dhl/src/index.js +1 -0
- package/dist/plugins/discord/src/index.js +13 -0
- package/dist/plugins/discourse/src/index.js +16 -0
- package/dist/plugins/disqus/src/index.js +4 -0
- package/dist/plugins/docker/src/index.js +5 -0
- package/dist/plugins/drift/src/index.js +5 -0
- package/dist/plugins/dropbox/src/index.js +9 -0
- package/dist/plugins/dropcontact/src/index.js +2 -0
- package/dist/plugins/egoi/src/index.js +4 -0
- package/dist/plugins/elasticsearch/src/index.js +9 -0
- package/dist/plugins/emelia/src/index.js +9 -0
- package/dist/plugins/erpnext/src/index.js +5 -0
- package/dist/plugins/facebookGraph/src/index.js +1 -0
- package/dist/plugins/freshdesk/src/index.js +10 -0
- package/dist/plugins/freshservice/src/index.js +7 -0
- package/dist/plugins/freshworksCrm/src/index.js +7 -0
- package/dist/plugins/getresponse/src/index.js +5 -0
- package/dist/plugins/ghost/src/index.js +5 -0
- package/dist/plugins/github/src/index.js +37 -0
- package/dist/plugins/gitlab/src/index.js +17 -0
- package/dist/plugins/gmail/src/index.js +32 -0
- package/dist/plugins/gong/src/index.js +4 -0
- package/dist/plugins/googleAppsScript/src/index.js +10 -0
- package/dist/plugins/googleCalendar/src/index.js +22 -0
- package/dist/plugins/googleContacts/src/index.js +10 -0
- package/dist/plugins/googleDocs/src/documents.js +4 -0
- package/dist/plugins/googleDocs/src/formatting.js +2 -0
- package/dist/plugins/googleDocs/src/images.js +2 -0
- package/dist/plugins/googleDocs/src/structure.js +13 -0
- package/dist/plugins/googleDocs/src/tables.js +11 -0
- package/dist/plugins/googleDocs/src/tabs.js +3 -0
- package/dist/plugins/googleDocs/src/text.js +9 -0
- package/dist/plugins/googleDrive/src/index.js +47 -0
- package/dist/plugins/googleImage/src/index.js +1 -0
- package/dist/plugins/googleSheets/src/index.js +23 -0
- package/dist/plugins/googleSlides/src/index.js +7 -0
- package/dist/plugins/googleTasks/src/index.js +12 -0
- package/dist/plugins/gotify/src/index.js +3 -0
- package/dist/plugins/gotowebinar/src/index.js +20 -0
- package/dist/plugins/grafana/src/index.js +17 -0
- package/dist/plugins/graphql/src/index.js +2 -0
- package/dist/plugins/grist/src/index.js +4 -0
- package/dist/plugins/hackernews/src/index.js +6 -0
- package/dist/plugins/halopsa/src/index.js +5 -0
- package/dist/plugins/harvest/src/index.js +14 -0
- package/dist/plugins/helpscout/src/index.js +13 -0
- package/dist/plugins/highlevel/src/index.js +17 -0
- package/dist/plugins/homeAssistant/src/index.js +13 -0
- package/dist/plugins/hubspot/src/index.js +14 -0
- package/dist/plugins/humanticAi/src/index.js +3 -0
- package/dist/plugins/hunter/src/index.js +3 -0
- package/dist/plugins/intercom/src/index.js +10 -0
- package/dist/plugins/iterable/src/index.js +6 -0
- package/dist/plugins/jenkins/src/index.js +11 -0
- package/dist/plugins/jira/src/index.js +16 -0
- package/dist/plugins/keap/src/index.js +28 -0
- package/dist/plugins/kobotoolbox/src/index.js +17 -0
- package/dist/plugins/lemlist/src/index.js +15 -0
- package/dist/plugins/linear/src/attachments.js +6 -0
- package/dist/plugins/linear/src/comments.js +5 -0
- package/dist/plugins/linear/src/cycles.js +2 -0
- package/dist/plugins/linear/src/initiatives.js +5 -0
- package/dist/plugins/linear/src/issues.js +14 -0
- package/dist/plugins/linear/src/labels.js +5 -0
- package/dist/plugins/linear/src/organization.js +1 -0
- package/dist/plugins/linear/src/projects.js +11 -0
- package/dist/plugins/linear/src/shared.js +2 -0
- package/dist/plugins/linear/src/states.js +2 -0
- package/dist/plugins/linear/src/teams.js +3 -0
- package/dist/plugins/linear/src/users.js +2 -0
- package/dist/plugins/linear/src/views.js +4 -0
- package/dist/plugins/linear/src/webhooks.js +4 -0
- package/dist/plugins/lingvanex/src/index.js +1 -0
- package/dist/plugins/linkedin/src/index.js +1 -0
- package/dist/plugins/lonescale/src/index.js +4 -0
- package/dist/plugins/magento/src/index.js +15 -0
- package/dist/plugins/mailcheck/src/index.js +1 -0
- package/dist/plugins/mailchimp/src/index.js +14 -0
- package/dist/plugins/mailerlite/src/index.js +4 -0
- package/dist/plugins/mailgun/src/index.js +1 -0
- package/dist/plugins/mailjet/src/index.js +3 -0
- package/dist/plugins/mandrill/src/index.js +2 -0
- package/dist/plugins/marketstack/src/index.js +3 -0
- package/dist/plugins/matrix/src/index.js +10 -0
- package/dist/plugins/mattermost/src/index.js +19 -0
- package/dist/plugins/mautic/src/index.js +20 -0
- package/dist/plugins/medium/src/index.js +3 -0
- package/dist/plugins/messagebird/src/index.js +2 -0
- package/dist/plugins/metabase/src/index.js +10 -0
- package/dist/plugins/microsoftCalendar/src/index.js +2 -0
- package/dist/plugins/microsoftFiles/src/index.js +5 -0
- package/dist/plugins/microsoftMail/src/index.js +4 -0
- package/dist/plugins/misp/src/index.js +44 -0
- package/dist/plugins/mocean/src/index.js +2 -0
- package/dist/plugins/monday/src/index.js +18 -0
- package/dist/plugins/monicaCrm/src/index.js +5 -0
- package/dist/plugins/msg91/src/index.js +1 -0
- package/dist/plugins/nasa/src/index.js +7 -0
- package/dist/plugins/netlify/src/index.js +7 -0
- package/dist/plugins/netscalerAdc/src/index.js +3 -0
- package/dist/plugins/nextcloud/src/index.js +13 -0
- package/dist/plugins/nocodb/src/index.js +5 -0
- package/dist/plugins/node/src/index.js +38 -0
- package/dist/plugins/notion/src/index.js +14 -0
- package/dist/plugins/npm/src/index.js +5 -0
- package/dist/plugins/odoo/src/index.js +6 -0
- package/dist/plugins/okta/src/index.js +5 -0
- package/dist/plugins/oneSimpleApi/src/index.js +10 -0
- package/dist/plugins/onfleet/src/index.js +24 -0
- package/dist/plugins/openThesaurus/src/index.js +1 -0
- package/dist/plugins/openai/src/index.js +1 -0
- package/dist/plugins/openweathermap/src/index.js +2 -0
- package/dist/plugins/oura/src/index.js +2 -0
- package/dist/plugins/paddle/src/index.js +9 -0
- package/dist/plugins/pagerduty/src/index.js +9 -0
- package/dist/plugins/parallel/src/index.js +1 -0
- package/dist/plugins/paypal/src/index.js +4 -0
- package/dist/plugins/peekalink/src/index.js +2 -0
- package/dist/plugins/phantombuster/src/index.js +5 -0
- package/dist/plugins/philipsHue/src/index.js +4 -0
- package/dist/plugins/pipedrive/src/index.js +14 -0
- package/dist/plugins/plivo/src/index.js +3 -0
- package/dist/plugins/postbin/src/index.js +6 -0
- package/dist/plugins/posthog/src/index.js +5 -0
- package/dist/plugins/profitwell/src/index.js +2 -0
- package/dist/plugins/pushbullet/src/index.js +4 -0
- package/dist/plugins/pushcut/src/index.js +1 -0
- package/dist/plugins/pushover/src/index.js +1 -0
- package/dist/plugins/quickbase/src/index.js +8 -0
- package/dist/plugins/quickbooks/src/index.js +5 -0
- package/dist/plugins/quickchart/src/index.js +1 -0
- package/dist/plugins/raindrop/src/index.js +13 -0
- package/dist/plugins/recraft/src/index.js +1 -0
- package/dist/plugins/reddit/src/index.js +10 -0
- package/dist/plugins/replicate/src/index.js +1 -0
- package/dist/plugins/rocketchat/src/index.js +1 -0
- package/dist/plugins/rundeck/src/index.js +2 -0
- package/dist/plugins/salesforce/src/metadata.js +4 -0
- package/dist/plugins/salesforce/src/query.js +5 -0
- package/dist/plugins/salesforce/src/sobjects.js +12 -0
- package/dist/plugins/salesmate/src/index.js +5 -0
- package/dist/plugins/securityScorecard/src/index.js +14 -0
- package/dist/plugins/segment/src/index.js +4 -0
- package/dist/plugins/sendgrid/src/index.js +10 -0
- package/dist/plugins/sendy/src/index.js +6 -0
- package/dist/plugins/sentry/src/index.js +24 -0
- package/dist/plugins/servicenow/src/index.js +10 -0
- package/dist/plugins/shiftLabs/src/index.js +15 -0
- package/dist/plugins/shiftLabs/src/issues.js +74 -0
- package/dist/plugins/shiftLabs/src/pages.js +148 -0
- package/dist/plugins/shiftLabs/src/shared.js +69 -0
- package/dist/plugins/shopify/src/index.js +10 -0
- package/dist/plugins/signl4/src/index.js +2 -0
- package/dist/plugins/slack/src/index.js +38 -0
- package/dist/plugins/sms77/src/index.js +2 -0
- package/dist/plugins/splunk/src/index.js +16 -0
- package/dist/plugins/spotify/src/index.js +30 -0
- package/dist/plugins/stackby/src/index.js +4 -0
- package/dist/plugins/steel/src/browser.js +7 -0
- package/dist/plugins/steel/src/captchas.js +3 -0
- package/dist/plugins/steel/src/credentials.js +4 -0
- package/dist/plugins/steel/src/extensions.js +5 -0
- package/dist/plugins/steel/src/files.js +10 -0
- package/dist/plugins/steel/src/profiles.js +4 -0
- package/dist/plugins/steel/src/sessions.js +11 -0
- package/dist/plugins/storyblok/src/index.js +7 -0
- package/dist/plugins/strapi/src/index.js +5 -0
- package/dist/plugins/strava/src/index.js +6 -0
- package/dist/plugins/stripe/src/index.js +20 -0
- package/dist/plugins/supabase/src/index.js +5 -0
- package/dist/plugins/syncromsp/src/index.js +20 -0
- package/dist/plugins/tapfiliate/src/index.js +11 -0
- package/dist/plugins/telegram/src/index.js +21 -0
- package/dist/plugins/thehive/src/index.js +23 -0
- package/dist/plugins/thehiveProject/src/index.js +31 -0
- package/dist/plugins/todoist/src/index.js +31 -0
- package/dist/plugins/together/src/index.js +1 -0
- package/dist/plugins/travisci/src/index.js +5 -0
- package/dist/plugins/trello/src/index.js +37 -0
- package/dist/plugins/twake/src/index.js +1 -0
- package/dist/plugins/twilio/src/index.js +2 -0
- package/dist/plugins/twist/src/index.js +22 -0
- package/dist/plugins/twitter/src/index.js +8 -0
- package/dist/plugins/unleashedSoftware/src/index.js +3 -0
- package/dist/plugins/uplead/src/index.js +2 -0
- package/dist/plugins/uproc/src/index.js +1 -0
- package/dist/plugins/uptimerobot/src/index.js +22 -0
- package/dist/plugins/urlscanio/src/index.js +3 -0
- package/dist/plugins/vercel/src/account.js +1 -0
- package/dist/plugins/vercel/src/deployments.js +5 -0
- package/dist/plugins/vercel/src/env.js +4 -0
- package/dist/plugins/vercel/src/projects.js +2 -0
- package/dist/plugins/vercel/src/shared.js +1 -0
- package/dist/plugins/vero/src/index.js +6 -0
- package/dist/plugins/vonage/src/index.js +1 -0
- package/dist/plugins/wekan/src/index.js +24 -0
- package/dist/plugins/woocommerce/src/index.js +5 -0
- package/dist/plugins/wordpress/src/index.js +10 -0
- package/dist/plugins/xai/src/index.js +1 -0
- package/dist/plugins/xero/src/index.js +8 -0
- package/dist/plugins/yourls/src/index.js +3 -0
- package/dist/plugins/zammad/src/index.js +12 -0
- package/dist/plugins/zendesk/src/index.js +18 -0
- package/dist/plugins/zoho/src/index.js +6 -0
- package/dist/plugins/zoom/src/index.js +5 -0
- package/dist/plugins/zulip/src/index.js +15 -0
- package/dist/sdk.d.ts +2 -1
- package/dist/sdk.js +1 -0
- package/package.json +1 -1
|
@@ -52,6 +52,7 @@ export default function lemlist(rl) {
|
|
|
52
52
|
const key = (ctx) => ctx.connection.config.apiKey;
|
|
53
53
|
// ── Activity ────────────────────────────────────────
|
|
54
54
|
rl.registerAction("activity.list", {
|
|
55
|
+
access: "read",
|
|
55
56
|
description: "List activities",
|
|
56
57
|
inputSchema: {
|
|
57
58
|
limit: { type: "number", required: false, description: "Max results" },
|
|
@@ -89,6 +90,7 @@ export default function lemlist(rl) {
|
|
|
89
90
|
});
|
|
90
91
|
// ── Campaign ────────────────────────────────────────
|
|
91
92
|
rl.registerAction("campaign.list", {
|
|
93
|
+
access: "read",
|
|
92
94
|
description: "List campaigns",
|
|
93
95
|
inputSchema: {
|
|
94
96
|
limit: { type: "number", required: false },
|
|
@@ -103,6 +105,7 @@ export default function lemlist(rl) {
|
|
|
103
105
|
},
|
|
104
106
|
});
|
|
105
107
|
rl.registerAction("campaign.getStats", {
|
|
108
|
+
access: "read",
|
|
106
109
|
description: "Get campaign statistics",
|
|
107
110
|
inputSchema: {
|
|
108
111
|
campaignId: { type: "string", required: true },
|
|
@@ -129,6 +132,7 @@ export default function lemlist(rl) {
|
|
|
129
132
|
});
|
|
130
133
|
// ── Lead ────────────────────────────────────────────
|
|
131
134
|
rl.registerAction("lead.create", {
|
|
135
|
+
access: "write",
|
|
132
136
|
description: "Add a lead to a campaign",
|
|
133
137
|
inputSchema: {
|
|
134
138
|
campaignId: { type: "string", required: true },
|
|
@@ -165,6 +169,7 @@ export default function lemlist(rl) {
|
|
|
165
169
|
},
|
|
166
170
|
});
|
|
167
171
|
rl.registerAction("lead.get", {
|
|
172
|
+
access: "read",
|
|
168
173
|
description: "Get a lead by email",
|
|
169
174
|
inputSchema: { email: { type: "string", required: true } },
|
|
170
175
|
async execute(input, ctx) {
|
|
@@ -172,6 +177,7 @@ export default function lemlist(rl) {
|
|
|
172
177
|
},
|
|
173
178
|
});
|
|
174
179
|
rl.registerAction("lead.delete", {
|
|
180
|
+
access: "write",
|
|
175
181
|
description: "Remove a lead from a campaign (keeps lead in unsubscribe list)",
|
|
176
182
|
inputSchema: {
|
|
177
183
|
campaignId: { type: "string", required: true },
|
|
@@ -183,6 +189,7 @@ export default function lemlist(rl) {
|
|
|
183
189
|
},
|
|
184
190
|
});
|
|
185
191
|
rl.registerAction("lead.unsubscribe", {
|
|
192
|
+
access: "write",
|
|
186
193
|
description: "Unsubscribe a lead from a campaign",
|
|
187
194
|
inputSchema: {
|
|
188
195
|
campaignId: { type: "string", required: true },
|
|
@@ -195,12 +202,14 @@ export default function lemlist(rl) {
|
|
|
195
202
|
});
|
|
196
203
|
// ── Team ────────────────────────────────────────────
|
|
197
204
|
rl.registerAction("team.get", {
|
|
205
|
+
access: "read",
|
|
198
206
|
description: "Get team information",
|
|
199
207
|
async execute(_input, ctx) {
|
|
200
208
|
return apiRequest(key(ctx), "GET", "/team");
|
|
201
209
|
},
|
|
202
210
|
});
|
|
203
211
|
rl.registerAction("team.getCredits", {
|
|
212
|
+
access: "read",
|
|
204
213
|
description: "Get team credits",
|
|
205
214
|
async execute(_input, ctx) {
|
|
206
215
|
return apiRequest(key(ctx), "GET", "/team/credits");
|
|
@@ -208,6 +217,7 @@ export default function lemlist(rl) {
|
|
|
208
217
|
});
|
|
209
218
|
// ── Unsubscribe ─────────────────────────────────────
|
|
210
219
|
rl.registerAction("unsubscribe.add", {
|
|
220
|
+
access: "write",
|
|
211
221
|
description: "Add an email to the unsubscribe list",
|
|
212
222
|
inputSchema: { email: { type: "string", required: true } },
|
|
213
223
|
async execute(input, ctx) {
|
|
@@ -215,6 +225,7 @@ export default function lemlist(rl) {
|
|
|
215
225
|
},
|
|
216
226
|
});
|
|
217
227
|
rl.registerAction("unsubscribe.delete", {
|
|
228
|
+
access: "write",
|
|
218
229
|
description: "Remove an email from the unsubscribe list",
|
|
219
230
|
inputSchema: { email: { type: "string", required: true } },
|
|
220
231
|
async execute(input, ctx) {
|
|
@@ -222,6 +233,7 @@ export default function lemlist(rl) {
|
|
|
222
233
|
},
|
|
223
234
|
});
|
|
224
235
|
rl.registerAction("unsubscribe.list", {
|
|
236
|
+
access: "read",
|
|
225
237
|
description: "List all unsubscribed emails",
|
|
226
238
|
inputSchema: { limit: { type: "number", required: false } },
|
|
227
239
|
async execute(input, ctx) {
|
|
@@ -235,6 +247,7 @@ export default function lemlist(rl) {
|
|
|
235
247
|
});
|
|
236
248
|
// ── Enrichment ──────────────────────────────────────
|
|
237
249
|
rl.registerAction("enrich.get", {
|
|
250
|
+
access: "read",
|
|
238
251
|
description: "Get an enrichment result by ID",
|
|
239
252
|
inputSchema: { enrichId: { type: "string", required: true } },
|
|
240
253
|
async execute(input, ctx) {
|
|
@@ -242,6 +255,7 @@ export default function lemlist(rl) {
|
|
|
242
255
|
},
|
|
243
256
|
});
|
|
244
257
|
rl.registerAction("enrich.lead", {
|
|
258
|
+
access: "write",
|
|
245
259
|
description: "Enrich a lead by ID",
|
|
246
260
|
inputSchema: {
|
|
247
261
|
leadId: { type: "string", required: true },
|
|
@@ -261,6 +275,7 @@ export default function lemlist(rl) {
|
|
|
261
275
|
},
|
|
262
276
|
});
|
|
263
277
|
rl.registerAction("enrich.person", {
|
|
278
|
+
access: "write",
|
|
264
279
|
description: "Enrich a person (without existing lead)",
|
|
265
280
|
inputSchema: {
|
|
266
281
|
findEmail: { type: "boolean", required: true },
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { ATTACHMENT_FIELDS, assertAttachmentInScope, assertIssueInScope, gql, key, requireUnscoped, } from "./shared.js";
|
|
3
3
|
export function registerAttachmentActions(rl) {
|
|
4
4
|
rl.registerAction("attachment.list", {
|
|
5
|
+
access: "read",
|
|
5
6
|
description: "List issue attachments. Disabled for scoped Linear connections.",
|
|
6
7
|
inputSchema: t.Object({ limit: t.Optional(t.Number()) }),
|
|
7
8
|
async execute(input, ctx) {
|
|
@@ -12,6 +13,7 @@ export function registerAttachmentActions(rl) {
|
|
|
12
13
|
},
|
|
13
14
|
});
|
|
14
15
|
rl.registerAction("attachment.get", {
|
|
16
|
+
access: "read",
|
|
15
17
|
description: "Get an attachment by ID.",
|
|
16
18
|
inputSchema: t.Object({ id: t.String() }),
|
|
17
19
|
async execute(input, ctx) {
|
|
@@ -22,6 +24,7 @@ export function registerAttachmentActions(rl) {
|
|
|
22
24
|
},
|
|
23
25
|
});
|
|
24
26
|
rl.registerAction("attachment.create", {
|
|
27
|
+
access: "write",
|
|
25
28
|
description: "Create an attachment on an issue.",
|
|
26
29
|
inputSchema: t.Object({
|
|
27
30
|
issueId: t.String({
|
|
@@ -54,6 +57,7 @@ export function registerAttachmentActions(rl) {
|
|
|
54
57
|
},
|
|
55
58
|
});
|
|
56
59
|
rl.registerAction("attachment.update", {
|
|
60
|
+
access: "write",
|
|
57
61
|
description: "Update an attachment. title is required.",
|
|
58
62
|
inputSchema: t.Object({
|
|
59
63
|
id: t.String({
|
|
@@ -74,6 +78,7 @@ export function registerAttachmentActions(rl) {
|
|
|
74
78
|
},
|
|
75
79
|
});
|
|
76
80
|
rl.registerAction("attachment.linkURL", {
|
|
81
|
+
access: "write",
|
|
77
82
|
description: "Link any URL to an issue. If a workspace integration matches the URL (Zendesk, GitHub, Slack, etc.) a rich attachment is created; otherwise a basic one.",
|
|
78
83
|
inputSchema: t.Object({
|
|
79
84
|
issueId: t.String({
|
|
@@ -95,6 +100,7 @@ export function registerAttachmentActions(rl) {
|
|
|
95
100
|
},
|
|
96
101
|
});
|
|
97
102
|
rl.registerAction("attachment.delete", {
|
|
103
|
+
access: "write",
|
|
98
104
|
description: "Delete an attachment.",
|
|
99
105
|
inputSchema: t.Object({
|
|
100
106
|
id: t.String({
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { assertCommentInScope, assertIssueInScope, COMMENT_FIELDS, gql, key, requireUnscoped, } from "./shared.js";
|
|
3
3
|
export function registerCommentActions(rl) {
|
|
4
4
|
rl.registerAction("issue.addComment", {
|
|
5
|
+
access: "write",
|
|
5
6
|
description: "Add a comment to an issue. Pass parentId to nest as a reply.",
|
|
6
7
|
inputSchema: t.Object({
|
|
7
8
|
issueId: t.String({
|
|
@@ -26,6 +27,7 @@ export function registerCommentActions(rl) {
|
|
|
26
27
|
},
|
|
27
28
|
});
|
|
28
29
|
rl.registerAction("comment.list", {
|
|
30
|
+
access: "read",
|
|
29
31
|
description: "List comments. Pass issueId (UUID or identifier like 'LIN-123') to list one issue's comments; without it, lists workspace-wide (unscoped connections only).",
|
|
30
32
|
inputSchema: t.Object({
|
|
31
33
|
issueId: t.Optional(t.String({
|
|
@@ -46,6 +48,7 @@ export function registerCommentActions(rl) {
|
|
|
46
48
|
},
|
|
47
49
|
});
|
|
48
50
|
rl.registerAction("comment.get", {
|
|
51
|
+
access: "read",
|
|
49
52
|
description: "Get a comment by ID.",
|
|
50
53
|
inputSchema: t.Object({ id: t.String() }),
|
|
51
54
|
async execute(input, ctx) {
|
|
@@ -56,6 +59,7 @@ export function registerCommentActions(rl) {
|
|
|
56
59
|
},
|
|
57
60
|
});
|
|
58
61
|
rl.registerAction("comment.update", {
|
|
62
|
+
access: "write",
|
|
59
63
|
description: "Update a comment.",
|
|
60
64
|
inputSchema: t.Object({
|
|
61
65
|
id: t.String({ description: "The identifier of the comment to update" }),
|
|
@@ -72,6 +76,7 @@ export function registerCommentActions(rl) {
|
|
|
72
76
|
},
|
|
73
77
|
});
|
|
74
78
|
rl.registerAction("comment.delete", {
|
|
79
|
+
access: "write",
|
|
75
80
|
description: "Delete a comment.",
|
|
76
81
|
inputSchema: t.Object({ id: t.String() }),
|
|
77
82
|
async execute(input, ctx) {
|
|
@@ -6,6 +6,7 @@ export function registerCycleActions(rl) {
|
|
|
6
6
|
listAction("cycle.list", "List cycles. Use filter for isActive/isNext/isPrevious.", "cycles", "CycleFilter", CYCLE_FIELDS);
|
|
7
7
|
getAction("cycle.get", "Get a cycle by ID.", "cycle", CYCLE_FIELDS);
|
|
8
8
|
rl.registerAction("cycle.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a cycle for a team.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
teamId: t.String({ description: "The team to associate the cycle with" }),
|
|
@@ -31,6 +32,7 @@ export function registerCycleActions(rl) {
|
|
|
31
32
|
},
|
|
32
33
|
});
|
|
33
34
|
rl.registerAction("cycle.update", {
|
|
35
|
+
access: "write",
|
|
34
36
|
description: "Update a cycle.",
|
|
35
37
|
inputSchema: t.Object({
|
|
36
38
|
id: t.String({ description: "The identifier of the cycle to update" }),
|
|
@@ -6,6 +6,7 @@ export function registerInitiativeActions(rl) {
|
|
|
6
6
|
listAction("initiative.list", "List initiatives.", "initiatives", "InitiativeFilter", INITIATIVE_FIELDS);
|
|
7
7
|
getAction("initiative.get", "Get an initiative by ID or slug.", "initiative", INITIATIVE_FIELDS);
|
|
8
8
|
rl.registerAction("initiative.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create an initiative. Status: Planned | Active | Completed.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
name: t.String({ description: "The name of the initiative" }),
|
|
@@ -39,6 +40,7 @@ export function registerInitiativeActions(rl) {
|
|
|
39
40
|
},
|
|
40
41
|
});
|
|
41
42
|
rl.registerAction("initiative.update", {
|
|
43
|
+
access: "write",
|
|
42
44
|
description: "Update an initiative.",
|
|
43
45
|
inputSchema: t.Object({
|
|
44
46
|
id: t.String({
|
|
@@ -76,6 +78,7 @@ export function registerInitiativeActions(rl) {
|
|
|
76
78
|
},
|
|
77
79
|
});
|
|
78
80
|
rl.registerAction("initiative.delete", {
|
|
81
|
+
access: "write",
|
|
79
82
|
description: "Trash an initiative.",
|
|
80
83
|
inputSchema: t.Object({
|
|
81
84
|
id: t.String({
|
|
@@ -89,6 +92,7 @@ export function registerInitiativeActions(rl) {
|
|
|
89
92
|
},
|
|
90
93
|
});
|
|
91
94
|
rl.registerAction("initiative.addProject", {
|
|
95
|
+
access: "write",
|
|
92
96
|
description: "Associate a project with an initiative. Use this action for project-to-initiative linking; project.update does not accept initiativeId. Verify with initiative.get or the returned initiative.projects list.",
|
|
93
97
|
inputSchema: t.Object({
|
|
94
98
|
initiativeId: t.String({
|
|
@@ -109,6 +113,7 @@ export function registerInitiativeActions(rl) {
|
|
|
109
113
|
},
|
|
110
114
|
});
|
|
111
115
|
rl.registerAction("initiative.removeProject", {
|
|
116
|
+
access: "write",
|
|
112
117
|
description: "Remove a project from an initiative. Pass the link id returned by initiative.addProject, then verify with initiative.get.",
|
|
113
118
|
inputSchema: t.Object({
|
|
114
119
|
id: t.String({
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { assertIssueInScope, buildConnArgs, COMMENT_FIELDS, ensureScopeLabelsOnCreateOrReplace, forbidScopeLabelRemoval, gql, ISSUE_FIELDS, ISSUE_LITE, issueHasScope, key, LIST_INPUT_SCHEMA, mergeIssueScopeFilter, } from "./shared.js";
|
|
3
3
|
export function registerIssueActions(rl) {
|
|
4
4
|
rl.registerAction("issue.create", {
|
|
5
|
+
access: "write",
|
|
5
6
|
description: "Create an issue. teamId is required; title is required unless a template is applied.",
|
|
6
7
|
inputSchema: t.Object({
|
|
7
8
|
teamId: t.String({
|
|
@@ -63,6 +64,7 @@ export function registerIssueActions(rl) {
|
|
|
63
64
|
},
|
|
64
65
|
});
|
|
65
66
|
rl.registerAction("issue.get", {
|
|
67
|
+
access: "read",
|
|
66
68
|
description: "Get an issue by ID or identifier (e.g. 'THE-154')",
|
|
67
69
|
inputSchema: t.Object({
|
|
68
70
|
issueId: t.String({
|
|
@@ -78,6 +80,7 @@ export function registerIssueActions(rl) {
|
|
|
78
80
|
},
|
|
79
81
|
});
|
|
80
82
|
rl.registerAction("issue.list", {
|
|
83
|
+
access: "read",
|
|
81
84
|
description: "List issues. Pass `filter` for state/label/project/etc. Default hides archived.",
|
|
82
85
|
inputSchema: t.Object({
|
|
83
86
|
...LIST_INPUT_SCHEMA,
|
|
@@ -100,6 +103,7 @@ export function registerIssueActions(rl) {
|
|
|
100
103
|
},
|
|
101
104
|
});
|
|
102
105
|
rl.registerAction("issue.update", {
|
|
106
|
+
access: "write",
|
|
103
107
|
description: "Update an issue. All fields optional; only provided fields are updated.",
|
|
104
108
|
inputSchema: t.Object({
|
|
105
109
|
issueId: t.String({
|
|
@@ -175,6 +179,7 @@ export function registerIssueActions(rl) {
|
|
|
175
179
|
},
|
|
176
180
|
});
|
|
177
181
|
rl.registerAction("issue.delete", {
|
|
182
|
+
access: "write",
|
|
178
183
|
description: "Trash (soft-delete) an issue. Pass permanentlyDelete=true to bypass 30d grace period (admin only).",
|
|
179
184
|
inputSchema: t.Object({
|
|
180
185
|
issueId: t.String(),
|
|
@@ -188,6 +193,7 @@ export function registerIssueActions(rl) {
|
|
|
188
193
|
},
|
|
189
194
|
});
|
|
190
195
|
rl.registerAction("issue.archive", {
|
|
196
|
+
access: "write",
|
|
191
197
|
description: "Archive an issue.",
|
|
192
198
|
inputSchema: t.Object({
|
|
193
199
|
issueId: t.String(),
|
|
@@ -201,6 +207,7 @@ export function registerIssueActions(rl) {
|
|
|
201
207
|
},
|
|
202
208
|
});
|
|
203
209
|
rl.registerAction("issue.unarchive", {
|
|
210
|
+
access: "write",
|
|
204
211
|
description: "Unarchive an issue.",
|
|
205
212
|
inputSchema: t.Object({ issueId: t.String() }),
|
|
206
213
|
async execute(input, ctx) {
|
|
@@ -211,6 +218,7 @@ export function registerIssueActions(rl) {
|
|
|
211
218
|
},
|
|
212
219
|
});
|
|
213
220
|
rl.registerAction("issue.search", {
|
|
221
|
+
access: "read",
|
|
214
222
|
description: "Search issues by text query using full-text and vector search. Rate-limited to 30 req/min.",
|
|
215
223
|
inputSchema: t.Object({
|
|
216
224
|
term: t.String({ description: "Search string to look for" }),
|
|
@@ -252,6 +260,7 @@ export function registerIssueActions(rl) {
|
|
|
252
260
|
},
|
|
253
261
|
});
|
|
254
262
|
rl.registerAction("issue.addLabel", {
|
|
263
|
+
access: "write",
|
|
255
264
|
description: "Add a single label to an issue.",
|
|
256
265
|
inputSchema: t.Object({
|
|
257
266
|
issueId: t.String(),
|
|
@@ -265,6 +274,7 @@ export function registerIssueActions(rl) {
|
|
|
265
274
|
},
|
|
266
275
|
});
|
|
267
276
|
rl.registerAction("issue.removeLabel", {
|
|
277
|
+
access: "write",
|
|
268
278
|
description: "Remove a single label from an issue.",
|
|
269
279
|
inputSchema: t.Object({
|
|
270
280
|
issueId: t.String(),
|
|
@@ -279,6 +289,7 @@ export function registerIssueActions(rl) {
|
|
|
279
289
|
},
|
|
280
290
|
});
|
|
281
291
|
rl.registerAction("issue.subscribe", {
|
|
292
|
+
access: "write",
|
|
282
293
|
description: "Subscribe a user to issue notifications (defaults to current user).",
|
|
283
294
|
inputSchema: t.Object({
|
|
284
295
|
issueId: t.String(),
|
|
@@ -295,6 +306,7 @@ export function registerIssueActions(rl) {
|
|
|
295
306
|
},
|
|
296
307
|
});
|
|
297
308
|
rl.registerAction("issue.unsubscribe", {
|
|
309
|
+
access: "write",
|
|
298
310
|
description: "Unsubscribe a user from issue notifications (defaults to current user).",
|
|
299
311
|
inputSchema: t.Object({
|
|
300
312
|
issueId: t.String(),
|
|
@@ -311,6 +323,7 @@ export function registerIssueActions(rl) {
|
|
|
311
323
|
},
|
|
312
324
|
});
|
|
313
325
|
rl.registerAction("issue.addLink", {
|
|
326
|
+
access: "write",
|
|
314
327
|
description: "Create a relation between two issues.",
|
|
315
328
|
inputSchema: t.Object({
|
|
316
329
|
issueId: t.String({
|
|
@@ -332,6 +345,7 @@ export function registerIssueActions(rl) {
|
|
|
332
345
|
},
|
|
333
346
|
});
|
|
334
347
|
rl.registerAction("issue.listComments", {
|
|
348
|
+
access: "read",
|
|
335
349
|
description: "List comments on an issue.",
|
|
336
350
|
inputSchema: t.Object({
|
|
337
351
|
issueId: t.String(),
|
|
@@ -6,6 +6,7 @@ export function registerLabelActions(rl) {
|
|
|
6
6
|
listAction("label.list", "List labels (workspace + team-scoped).", "issueLabels", "IssueLabelFilter", LABEL_FIELDS);
|
|
7
7
|
getAction("label.get", "Get a label by ID.", "issueLabel", LABEL_FIELDS);
|
|
8
8
|
rl.registerAction("label.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a label. Omit teamId for a workspace-level label.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
name: t.String({ description: "The name of the label" }),
|
|
@@ -36,6 +37,7 @@ export function registerLabelActions(rl) {
|
|
|
36
37
|
},
|
|
37
38
|
});
|
|
38
39
|
rl.registerAction("label.update", {
|
|
40
|
+
access: "write",
|
|
39
41
|
description: "Update a label.",
|
|
40
42
|
inputSchema: t.Object({
|
|
41
43
|
id: t.String({ description: "The identifier of the label to update" }),
|
|
@@ -59,6 +61,7 @@ export function registerLabelActions(rl) {
|
|
|
59
61
|
},
|
|
60
62
|
});
|
|
61
63
|
rl.registerAction("label.delete", {
|
|
64
|
+
access: "write",
|
|
62
65
|
description: "Delete a label.",
|
|
63
66
|
inputSchema: t.Object({
|
|
64
67
|
id: t.String({ description: "The identifier of the label to delete" }),
|
|
@@ -70,6 +73,7 @@ export function registerLabelActions(rl) {
|
|
|
70
73
|
},
|
|
71
74
|
});
|
|
72
75
|
rl.registerAction("label.retire", {
|
|
76
|
+
access: "write",
|
|
73
77
|
description: "Retire a label. Retired labels remain visible but cannot be applied to new issues.",
|
|
74
78
|
inputSchema: t.Object({
|
|
75
79
|
id: t.String({ description: "The identifier of the label to retire" }),
|
|
@@ -81,6 +85,7 @@ export function registerLabelActions(rl) {
|
|
|
81
85
|
},
|
|
82
86
|
});
|
|
83
87
|
rl.registerAction("label.restore", {
|
|
88
|
+
access: "write",
|
|
84
89
|
description: "Restore a previously retired label.",
|
|
85
90
|
inputSchema: t.Object({
|
|
86
91
|
id: t.String({ description: "The identifier of the label to restore" }),
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { gql, key, ORG_FIELDS, requireUnscoped } from "./shared.js";
|
|
3
3
|
export function registerOrganizationActions(rl) {
|
|
4
4
|
rl.registerAction("org.get", {
|
|
5
|
+
access: "read",
|
|
5
6
|
description: "Get the authenticated workspace.",
|
|
6
7
|
inputSchema: t.Object({}),
|
|
7
8
|
async execute(_input, ctx) {
|
|
@@ -6,6 +6,7 @@ export function registerProjectActions(rl) {
|
|
|
6
6
|
listAction("project.list", "List projects.", "projects", "ProjectFilter", PROJECT_FIELDS);
|
|
7
7
|
getAction("project.get", "Get a project by ID or slug.", "project", PROJECT_FIELDS);
|
|
8
8
|
rl.registerAction("project.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a project. teamIds is required.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
name: t.String({ description: "The name of the project" }),
|
|
@@ -66,6 +67,7 @@ export function registerProjectActions(rl) {
|
|
|
66
67
|
},
|
|
67
68
|
});
|
|
68
69
|
rl.registerAction("project.update", {
|
|
70
|
+
access: "write",
|
|
69
71
|
description: "Update a project.",
|
|
70
72
|
inputSchema: t.Object({
|
|
71
73
|
id: t.String({
|
|
@@ -123,6 +125,7 @@ export function registerProjectActions(rl) {
|
|
|
123
125
|
},
|
|
124
126
|
});
|
|
125
127
|
rl.registerAction("project.delete", {
|
|
128
|
+
access: "write",
|
|
126
129
|
description: "Trash (soft-delete) a project. Restorable via project.unarchive.",
|
|
127
130
|
inputSchema: t.Object({
|
|
128
131
|
id: t.String({ description: "The identifier of the project to delete" }),
|
|
@@ -134,6 +137,7 @@ export function registerProjectActions(rl) {
|
|
|
134
137
|
},
|
|
135
138
|
});
|
|
136
139
|
rl.registerAction("project.unarchive", {
|
|
140
|
+
access: "write",
|
|
137
141
|
description: "Restore a previously trashed or archived project.",
|
|
138
142
|
inputSchema: t.Object({
|
|
139
143
|
id: t.String({
|
|
@@ -147,6 +151,7 @@ export function registerProjectActions(rl) {
|
|
|
147
151
|
},
|
|
148
152
|
});
|
|
149
153
|
rl.registerAction("project.search", {
|
|
154
|
+
access: "read",
|
|
150
155
|
description: "Search projects by text. Rate-limited to 30 req/min.",
|
|
151
156
|
inputSchema: t.Object({
|
|
152
157
|
term: t.String({ description: "Search string to look for" }),
|
|
@@ -179,6 +184,7 @@ export function registerProjectActions(rl) {
|
|
|
179
184
|
listAction("milestone.list", "List project milestones.", "projectMilestones", "ProjectMilestoneFilter", MILESTONE_FIELDS);
|
|
180
185
|
getAction("milestone.get", "Get a project milestone by ID.", "projectMilestone", MILESTONE_FIELDS);
|
|
181
186
|
rl.registerAction("milestone.create", {
|
|
187
|
+
access: "write",
|
|
182
188
|
description: "Create a project milestone.",
|
|
183
189
|
inputSchema: t.Object({
|
|
184
190
|
projectId: t.String({
|
|
@@ -206,6 +212,7 @@ export function registerProjectActions(rl) {
|
|
|
206
212
|
},
|
|
207
213
|
});
|
|
208
214
|
rl.registerAction("milestone.update", {
|
|
215
|
+
access: "write",
|
|
209
216
|
description: "Update a project milestone.",
|
|
210
217
|
inputSchema: t.Object({
|
|
211
218
|
id: t.String({
|
|
@@ -234,6 +241,7 @@ export function registerProjectActions(rl) {
|
|
|
234
241
|
},
|
|
235
242
|
});
|
|
236
243
|
rl.registerAction("milestone.delete", {
|
|
244
|
+
access: "write",
|
|
237
245
|
description: "Delete a project milestone.",
|
|
238
246
|
inputSchema: t.Object({
|
|
239
247
|
id: t.String({
|
|
@@ -249,6 +257,7 @@ export function registerProjectActions(rl) {
|
|
|
249
257
|
// Project updates
|
|
250
258
|
listAction("projectUpdate.list", "List project updates.", "projectUpdates", "ProjectUpdateFilter", PROJECT_UPDATE_FIELDS);
|
|
251
259
|
rl.registerAction("projectUpdate.create", {
|
|
260
|
+
access: "write",
|
|
252
261
|
description: "Post a status update on a project.",
|
|
253
262
|
inputSchema: t.Object({
|
|
254
263
|
projectId: t.String({
|
|
@@ -275,6 +284,7 @@ export function registerProjectActions(rl) {
|
|
|
275
284
|
},
|
|
276
285
|
});
|
|
277
286
|
rl.registerAction("projectUpdate.update", {
|
|
287
|
+
access: "write",
|
|
278
288
|
description: "Update a project status update.",
|
|
279
289
|
inputSchema: t.Object({
|
|
280
290
|
id: t.String({
|
|
@@ -299,6 +309,7 @@ export function registerProjectActions(rl) {
|
|
|
299
309
|
},
|
|
300
310
|
});
|
|
301
311
|
rl.registerAction("projectUpdate.archive", {
|
|
312
|
+
access: "write",
|
|
302
313
|
description: "Archive a project status update.",
|
|
303
314
|
inputSchema: t.Object({
|
|
304
315
|
id: t.String({
|
|
@@ -218,6 +218,7 @@ function requireRootFieldAvailable(ctx, action, rootField) {
|
|
|
218
218
|
}
|
|
219
219
|
export function registerListAction(rl, name, description, rootField, filterTypeName, selection) {
|
|
220
220
|
rl.registerAction(name, {
|
|
221
|
+
access: "read",
|
|
221
222
|
description,
|
|
222
223
|
inputSchema: t.Object(LIST_INPUT_SCHEMA),
|
|
223
224
|
async execute(input, ctx) {
|
|
@@ -232,6 +233,7 @@ export function registerListAction(rl, name, description, rootField, filterTypeN
|
|
|
232
233
|
}
|
|
233
234
|
export function registerGetAction(rl, name, description, rootField, selection) {
|
|
234
235
|
rl.registerAction(name, {
|
|
236
|
+
access: "read",
|
|
235
237
|
description,
|
|
236
238
|
inputSchema: t.Object({
|
|
237
239
|
id: t.String({ description: "Identifier or slug" }),
|
|
@@ -6,6 +6,7 @@ export function registerStateActions(rl) {
|
|
|
6
6
|
listAction("state.list", "List workflow states. Filter by team for team-scoped states.", "workflowStates", "WorkflowStateFilter", STATE_FIELDS);
|
|
7
7
|
getAction("state.get", "Get a workflow state by ID.", "workflowState", STATE_FIELDS);
|
|
8
8
|
rl.registerAction("state.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a workflow state in a team.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
teamId: t.String({ description: "The team associated with the state" }),
|
|
@@ -30,6 +31,7 @@ export function registerStateActions(rl) {
|
|
|
30
31
|
},
|
|
31
32
|
});
|
|
32
33
|
rl.registerAction("state.update", {
|
|
34
|
+
access: "write",
|
|
33
35
|
description: "Update a workflow state. Type cannot be changed after creation.",
|
|
34
36
|
inputSchema: t.Object({
|
|
35
37
|
id: t.String({ description: "The identifier of the state to update" }),
|
|
@@ -6,6 +6,7 @@ export function registerTeamActions(rl) {
|
|
|
6
6
|
listAction("team.list", "List teams whose issues you can access.", "teams", "TeamFilter", TEAM_FIELDS);
|
|
7
7
|
getAction("team.get", "Get a team by ID or key.", "team", TEAM_FIELDS);
|
|
8
8
|
rl.registerAction("team.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a team. Most settings have sensible defaults.",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
name: t.String({ description: "The name of the team" }),
|
|
@@ -49,6 +50,7 @@ export function registerTeamActions(rl) {
|
|
|
49
50
|
},
|
|
50
51
|
});
|
|
51
52
|
rl.registerAction("team.update", {
|
|
53
|
+
access: "write",
|
|
52
54
|
description: "Update a team. Requires team owner or workspace admin permissions.",
|
|
53
55
|
inputSchema: t.Object({
|
|
54
56
|
id: t.String({ description: "The identifier of the team to update" }),
|
|
@@ -83,6 +85,7 @@ export function registerTeamActions(rl) {
|
|
|
83
85
|
},
|
|
84
86
|
});
|
|
85
87
|
rl.registerAction("team.members", {
|
|
88
|
+
access: "read",
|
|
86
89
|
description: "List members of a team.",
|
|
87
90
|
inputSchema: t.Object({
|
|
88
91
|
teamId: t.String({ description: "The identifier of the team" }),
|
|
@@ -6,6 +6,7 @@ export function registerUserActions(rl) {
|
|
|
6
6
|
listAction("user.list", "List users in the workspace.", "users", "UserFilter", USER_FIELDS);
|
|
7
7
|
getAction("user.get", "Get a user by ID. Use 'me' to reference the authenticated user.", "user", USER_FIELDS);
|
|
8
8
|
rl.registerAction("user.me", {
|
|
9
|
+
access: "read",
|
|
9
10
|
description: "Get the authenticated user.",
|
|
10
11
|
inputSchema: t.Object({}),
|
|
11
12
|
async execute(_input, ctx) {
|
|
@@ -14,6 +15,7 @@ export function registerUserActions(rl) {
|
|
|
14
15
|
},
|
|
15
16
|
});
|
|
16
17
|
rl.registerAction("user.update", {
|
|
18
|
+
access: "write",
|
|
17
19
|
description: "Update a user. Use id='me' to update the authenticated user.",
|
|
18
20
|
inputSchema: t.Object({
|
|
19
21
|
id: t.String({
|
|
@@ -6,6 +6,7 @@ export function registerViewActions(rl) {
|
|
|
6
6
|
const getAction = bindGetAction(rl);
|
|
7
7
|
function customViewConnectionAction(name, description, connectionField, filterTypeName, selection, includeSubTeamsDescription) {
|
|
8
8
|
rl.registerAction(name, {
|
|
9
|
+
access: "read",
|
|
9
10
|
description,
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
viewId: t.String({ description: "The custom view ID or slug" }),
|
|
@@ -44,6 +45,7 @@ export function registerViewActions(rl) {
|
|
|
44
45
|
listAction("view.list", "List custom views accessible to the user, including personal and shared workspace views. Linear excludes views scoped to a specific project or initiative from this root query.", "customViews", "CustomViewFilter", CUSTOM_VIEW_FIELDS);
|
|
45
46
|
getAction("view.get", "Get a custom view by ID or slug.", "customView", CUSTOM_VIEW_FIELDS);
|
|
46
47
|
rl.registerAction("view.create", {
|
|
48
|
+
access: "write",
|
|
47
49
|
description: "Create a custom view. Set filterData for issue views; projectFilterData, initiativeFilterData, or feedItemFilterData for other view types. Read matches back with view.issues/projects/initiatives/updates.",
|
|
48
50
|
inputSchema: t.Object({
|
|
49
51
|
name: t.String({ description: "The name of the custom view" }),
|
|
@@ -74,6 +76,7 @@ export function registerViewActions(rl) {
|
|
|
74
76
|
},
|
|
75
77
|
});
|
|
76
78
|
rl.registerAction("view.update", {
|
|
79
|
+
access: "write",
|
|
77
80
|
description: "Update a custom view. All fields optional; only provided fields are updated.",
|
|
78
81
|
inputSchema: t.Object({
|
|
79
82
|
id: t.String({
|
|
@@ -105,6 +108,7 @@ export function registerViewActions(rl) {
|
|
|
105
108
|
},
|
|
106
109
|
});
|
|
107
110
|
rl.registerAction("view.delete", {
|
|
111
|
+
access: "write",
|
|
108
112
|
description: "Delete a custom view.",
|
|
109
113
|
inputSchema: t.Object({
|
|
110
114
|
id: t.String({
|
|
@@ -6,6 +6,7 @@ export function registerWebhookActions(rl) {
|
|
|
6
6
|
listAction("webhook.list", "List webhooks for the current workspace.", "webhooks", null, WEBHOOK_FIELDS);
|
|
7
7
|
getAction("webhook.get", "Get a webhook by ID.", "webhook", WEBHOOK_FIELDS);
|
|
8
8
|
rl.registerAction("webhook.create", {
|
|
9
|
+
access: "write",
|
|
9
10
|
description: "Create a webhook. resourceTypes example: ['Issue','Comment','Project'].",
|
|
10
11
|
inputSchema: t.Object({
|
|
11
12
|
url: t.String({
|
|
@@ -38,6 +39,7 @@ export function registerWebhookActions(rl) {
|
|
|
38
39
|
},
|
|
39
40
|
});
|
|
40
41
|
rl.registerAction("webhook.update", {
|
|
42
|
+
access: "write",
|
|
41
43
|
description: "Update a webhook. teamId and allPublicTeams cannot be changed after creation.",
|
|
42
44
|
inputSchema: t.Object({
|
|
43
45
|
id: t.String({ description: "The identifier of the webhook to update" }),
|
|
@@ -61,6 +63,7 @@ export function registerWebhookActions(rl) {
|
|
|
61
63
|
},
|
|
62
64
|
});
|
|
63
65
|
rl.registerAction("webhook.delete", {
|
|
66
|
+
access: "write",
|
|
64
67
|
description: "Delete a webhook.",
|
|
65
68
|
inputSchema: t.Object({
|
|
66
69
|
id: t.String({ description: "The identifier of the webhook to delete" }),
|
|
@@ -72,6 +75,7 @@ export function registerWebhookActions(rl) {
|
|
|
72
75
|
},
|
|
73
76
|
});
|
|
74
77
|
rl.registerAction("webhook.rotateSecret", {
|
|
78
|
+
access: "write",
|
|
75
79
|
description: "Rotate a webhook's signing secret. Returns the new secret.",
|
|
76
80
|
inputSchema: t.Object({
|
|
77
81
|
id: t.String({
|
|
@@ -41,6 +41,7 @@ export default function linkedin(rl) {
|
|
|
41
41
|
});
|
|
42
42
|
const tok = (ctx) => ctx.connection.config.accessToken;
|
|
43
43
|
rl.registerAction("post.create", {
|
|
44
|
+
access: "write",
|
|
44
45
|
description: "Create a post on LinkedIn. Supports text-only, article shares, and text with commentary. Image uploads require binary data and are not supported in this plugin.",
|
|
45
46
|
inputSchema: {
|
|
46
47
|
postAs: {
|