runline 0.2.1 → 0.2.2
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/plugins/actionNetwork/src/index.js +118 -25
- package/dist/plugins/activeCampaign/src/index.js +184 -38
- package/dist/plugins/adalo/src/index.js +40 -8
- package/dist/plugins/affinity/src/index.js +100 -20
- package/dist/plugins/agileCrm/src/index.js +115 -27
- package/dist/plugins/airtable/src/index.js +94 -19
- package/dist/plugins/airtop/src/index.js +266 -62
- package/dist/plugins/apiTemplateIo/src/index.js +25 -5
- package/dist/plugins/asana/src/index.js +195 -41
- package/dist/plugins/autopilot/src/index.js +39 -8
- package/dist/plugins/bambooHr/src/index.js +109 -22
- package/dist/plugins/bannerbear/src/index.js +36 -8
- package/dist/plugins/baserow/src/index.js +35 -7
- package/dist/plugins/beeminder/src/index.js +198 -40
- package/dist/plugins/bitly/src/index.js +46 -10
- package/dist/plugins/bitwarden/src/index.js +167 -36
- package/dist/plugins/box/src/index.js +172 -37
- package/dist/plugins/brandfetch/src/index.js +5 -1
- package/dist/plugins/brevo/src/index.js +136 -29
- package/dist/plugins/bubble/src/index.js +76 -17
- package/dist/plugins/chargebee/src/index.js +35 -7
- package/dist/plugins/circleci/src/index.js +50 -10
- package/dist/plugins/ciscoWebex/src/index.js +131 -27
- package/dist/plugins/clearbit/src/index.js +76 -17
- package/dist/plugins/clickup/src/index.js +500 -107
- package/dist/plugins/clockify/src/index.js +229 -47
- package/dist/plugins/cloudflare/src/index.js +28 -6
- package/dist/plugins/cockpit/src/index.js +54 -12
- package/dist/plugins/coda/src/index.js +81 -19
- package/dist/plugins/coingecko/src/index.js +157 -33
- package/dist/plugins/contentful/src/index.js +85 -17
- package/dist/plugins/convertkit/src/index.js +74 -18
- package/dist/plugins/copper/src/index.js +59 -11
- package/dist/plugins/cortex/src/index.js +55 -13
- package/dist/plugins/currents/src/index.js +310 -71
- package/dist/plugins/customerIo/src/index.js +112 -23
- package/dist/plugins/databricks/src/index.js +549 -115
- package/dist/plugins/deepl/src/index.js +26 -6
- package/dist/plugins/demio/src/index.js +56 -11
- package/dist/plugins/dhl/src/index.js +16 -3
- package/dist/plugins/discord/src/index.js +141 -31
- package/dist/plugins/discourse/src/index.js +136 -31
- package/dist/plugins/disqus/src/index.js +96 -20
- package/dist/plugins/docker/src/index.js +20 -4
- package/dist/plugins/drift/src/index.js +19 -5
- package/dist/plugins/dropbox/src/index.js +139 -30
- package/dist/plugins/dropcontact/src/index.js +21 -4
- package/dist/plugins/egoi/src/index.js +61 -15
- package/dist/plugins/elasticsearch/src/index.js +59 -13
- package/dist/plugins/emelia/src/index.js +95 -19
- package/dist/plugins/erpnext/src/index.js +74 -15
- package/dist/plugins/facebookGraph/src/index.js +52 -11
- package/dist/plugins/freshdesk/src/index.js +220 -48
- package/dist/plugins/freshservice/src/index.js +39 -9
- package/dist/plugins/freshworksCrm/src/index.js +58 -12
- package/dist/plugins/getresponse/src/index.js +87 -18
- package/dist/plugins/ghost/src/index.js +114 -26
- package/dist/plugins/github/src/index.js +483 -109
- package/dist/plugins/gitlab/src/index.js +193 -45
- package/dist/plugins/gong/src/index.js +68 -14
- package/dist/plugins/gotify/src/index.js +43 -9
- package/dist/plugins/gotowebinar/src/index.js +233 -47
- package/dist/plugins/grafana/src/index.js +92 -21
- package/dist/plugins/graphql/src/index.js +38 -8
- package/dist/plugins/grist/src/index.js +52 -10
- package/dist/plugins/hackernews/src/index.js +32 -6
- package/dist/plugins/halopsa/src/index.js +131 -26
- package/dist/plugins/harvest/src/index.js +182 -42
- package/dist/plugins/helpscout/src/index.js +153 -31
- package/dist/plugins/highlevel/src/index.js +291 -58
- package/dist/plugins/homeAssistant/src/index.js +124 -26
- package/dist/plugins/hubspot/src/index.js +163 -29
- package/dist/plugins/humanticAi/src/index.js +54 -5
- package/dist/plugins/hunter/src/index.js +21 -4
- package/dist/plugins/intercom/src/index.js +95 -20
- package/dist/plugins/iterable/src/index.js +96 -20
- package/dist/plugins/jenkins/src/index.js +75 -17
- package/dist/plugins/jira/src/index.js +193 -43
- package/dist/plugins/keap/src/index.js +222 -56
- package/dist/plugins/kobotoolbox/src/index.js +113 -25
- package/dist/plugins/lemlist/src/index.js +79 -18
- package/dist/plugins/linear/src/index.js +86 -19
- package/dist/plugins/lingvanex/src/index.js +38 -8
- package/dist/plugins/linkedin/src/index.js +37 -8
- package/dist/plugins/lonescale/src/index.js +41 -9
- package/dist/plugins/magento/src/index.js +98 -27
- package/dist/plugins/mailcheck/src/index.js +11 -2
- package/dist/plugins/mailchimp/src/index.js +193 -42
- package/dist/plugins/mailerlite/src/index.js +61 -12
- package/dist/plugins/mailgun/src/index.js +39 -7
- package/dist/plugins/mailjet/src/index.js +141 -30
- package/dist/plugins/mandrill/src/index.js +67 -14
- package/dist/plugins/marketstack/src/index.js +56 -10
- package/dist/plugins/matrix/src/index.js +97 -20
- package/dist/plugins/mattermost/src/index.js +124 -26
- package/dist/plugins/mautic/src/index.js +129 -26
- package/dist/plugins/medium/src/index.js +64 -13
- package/dist/plugins/messagebird/src/index.js +80 -15
- package/dist/plugins/metabase/src/index.js +57 -12
- package/dist/plugins/misp/src/index.js +135 -33
- package/dist/plugins/mocean/src/index.js +33 -7
- package/dist/plugins/monday/src/index.js +97 -23
- package/dist/plugins/monicaCrm/src/index.js +112 -23
- package/dist/plugins/msg91/src/index.js +11 -2
- package/dist/plugins/nasa/src/index.js +108 -21
- package/dist/plugins/netlify/src/index.js +28 -6
- package/dist/plugins/netscalerAdc/src/index.js +144 -29
- package/dist/plugins/nextcloud/src/index.js +103 -20
- package/dist/plugins/nocodb/src/index.js +57 -11
- package/dist/plugins/notion/src/index.js +148 -37
- package/dist/plugins/npm/src/index.js +59 -12
- package/dist/plugins/odoo/src/index.js +102 -20
- package/dist/plugins/okta/src/index.js +50 -10
- package/dist/plugins/oneSimpleApi/src/index.js +84 -17
- package/dist/plugins/onfleet/src/index.js +139 -32
- package/dist/plugins/openThesaurus/src/index.js +46 -9
- package/dist/plugins/openweathermap/src/index.js +31 -6
- package/dist/plugins/oura/src/index.js +36 -7
- package/dist/plugins/paddle/src/index.js +80 -17
- package/dist/plugins/pagerduty/src/index.js +53 -12
- package/dist/plugins/paypal/src/index.js +51 -11
- package/dist/plugins/peekalink/src/index.js +12 -3
- package/dist/plugins/phantombuster/src/index.js +39 -8
- package/dist/plugins/philipsHue/src/index.js +64 -13
- package/dist/plugins/pipedrive/src/index.js +167 -45
- package/dist/plugins/plivo/src/index.js +43 -8
- package/dist/plugins/postbin/src/index.js +9 -2
- package/dist/plugins/posthog/src/index.js +50 -13
- package/dist/plugins/profitwell/src/index.js +24 -5
- package/dist/plugins/pushbullet/src/index.js +45 -9
- package/dist/plugins/pushcut/src/index.js +31 -6
- package/dist/plugins/pushover/src/index.js +51 -10
- package/dist/plugins/quickbase/src/index.js +66 -13
- package/dist/plugins/quickbooks/src/index.js +86 -19
- package/dist/plugins/quickchart/src/index.js +35 -7
- package/dist/plugins/raindrop/src/index.js +54 -13
- package/dist/plugins/reddit/src/index.js +73 -18
- package/dist/plugins/rocketchat/src/index.js +47 -9
- package/dist/plugins/rundeck/src/index.js +26 -5
- package/dist/plugins/salesforce/src/index.js +161 -31
- package/dist/plugins/salesmate/src/index.js +75 -16
- package/dist/plugins/securityScorecard/src/index.js +73 -15
- package/dist/plugins/segment/src/index.js +21 -4
- package/dist/plugins/sendgrid/src/index.js +102 -24
- package/dist/plugins/sendy/src/index.js +54 -11
- package/dist/plugins/sentry/src/index.js +174 -34
- package/dist/plugins/servicenow/src/index.js +120 -27
- package/dist/plugins/shopify/src/index.js +53 -12
- package/dist/plugins/signl4/src/index.js +16 -3
- package/dist/plugins/slack/src/index.js +407 -105
- package/dist/plugins/sms77/src/index.js +26 -5
- package/dist/plugins/splunk/src/index.js +186 -45
- package/dist/plugins/spotify/src/index.js +265 -66
- package/dist/plugins/stackby/src/index.js +18 -6
- package/dist/plugins/storyblok/src/index.js +57 -11
- package/dist/plugins/strapi/src/index.js +63 -12
- package/dist/plugins/strava/src/index.js +58 -13
- package/dist/plugins/stripe/src/index.js +143 -30
- package/dist/plugins/supabase/src/index.js +49 -10
- package/dist/plugins/syncromsp/src/index.js +245 -67
- package/dist/plugins/tapfiliate/src/index.js +57 -14
- package/dist/plugins/telegram/src/index.js +202 -39
- package/dist/plugins/thehive/src/index.js +271 -66
- package/dist/plugins/thehiveProject/src/index.js +457 -89
- package/dist/plugins/todoist/src/index.js +326 -77
- package/dist/plugins/travisci/src/index.js +35 -8
- package/dist/plugins/trello/src/index.js +204 -46
- package/dist/plugins/twake/src/index.js +10 -2
- package/dist/plugins/twilio/src/index.js +56 -11
- package/dist/plugins/twist/src/index.js +241 -48
- package/dist/plugins/twitter/src/index.js +128 -30
- package/dist/plugins/unleashedSoftware/src/index.js +30 -6
- package/dist/plugins/uplead/src/index.js +9 -2
- package/dist/plugins/uproc/src/index.js +31 -6
- package/dist/plugins/uptimerobot/src/index.js +119 -25
- package/dist/plugins/urlscanio/src/index.js +25 -6
- package/dist/plugins/vero/src/index.js +68 -13
- package/dist/plugins/vonage/src/index.js +32 -6
- package/dist/plugins/wekan/src/index.js +297 -52
- package/dist/plugins/woocommerce/src/index.js +57 -12
- package/dist/plugins/wordpress/src/index.js +94 -18
- package/dist/plugins/xero/src/index.js +79 -13
- package/dist/plugins/yourls/src/index.js +33 -6
- package/dist/plugins/zammad/src/index.js +139 -36
- package/dist/plugins/zendesk/src/index.js +201 -48
- package/dist/plugins/zoho/src/index.js +88 -21
- package/dist/plugins/zoom/src/index.js +41 -7
- package/dist/plugins/zulip/src/index.js +101 -20
- package/package.json +1 -1
|
@@ -18,7 +18,10 @@ async function apiRequest(token, method, endpoint, body, qs) {
|
|
|
18
18
|
method,
|
|
19
19
|
headers: { "Content-Type": "application/json", Authorization: token },
|
|
20
20
|
};
|
|
21
|
-
if (body &&
|
|
21
|
+
if (body &&
|
|
22
|
+
Object.keys(body).length > 0 &&
|
|
23
|
+
method !== "GET" &&
|
|
24
|
+
method !== "DELETE") {
|
|
22
25
|
opts.body = JSON.stringify(body);
|
|
23
26
|
}
|
|
24
27
|
const res = await fetch(url.toString(), opts);
|
|
@@ -37,7 +40,10 @@ async function paginateAll(token, endpoint, property, qs, limit) {
|
|
|
37
40
|
const results = [];
|
|
38
41
|
let page = 0;
|
|
39
42
|
while (true) {
|
|
40
|
-
const data = (await apiRequest(token, "GET", endpoint, undefined, {
|
|
43
|
+
const data = (await apiRequest(token, "GET", endpoint, undefined, {
|
|
44
|
+
...qs,
|
|
45
|
+
page,
|
|
46
|
+
}));
|
|
41
47
|
const items = data[property] ?? [];
|
|
42
48
|
results.push(...items);
|
|
43
49
|
if (limit && results.length >= limit)
|
|
@@ -78,7 +84,11 @@ export default function clickup(rl) {
|
|
|
78
84
|
rl.registerAction("checklist.update", {
|
|
79
85
|
description: "Update a checklist",
|
|
80
86
|
inputSchema: {
|
|
81
|
-
checklistId: {
|
|
87
|
+
checklistId: {
|
|
88
|
+
type: "string",
|
|
89
|
+
required: true,
|
|
90
|
+
description: "Checklist ID",
|
|
91
|
+
},
|
|
82
92
|
name: { type: "string", required: false, description: "New name" },
|
|
83
93
|
position: { type: "number", required: false, description: "Position" },
|
|
84
94
|
},
|
|
@@ -91,7 +101,11 @@ export default function clickup(rl) {
|
|
|
91
101
|
rl.registerAction("checklist.delete", {
|
|
92
102
|
description: "Delete a checklist",
|
|
93
103
|
inputSchema: {
|
|
94
|
-
checklistId: {
|
|
104
|
+
checklistId: {
|
|
105
|
+
type: "string",
|
|
106
|
+
required: true,
|
|
107
|
+
description: "Checklist ID",
|
|
108
|
+
},
|
|
95
109
|
},
|
|
96
110
|
async execute(input, ctx) {
|
|
97
111
|
const { checklistId } = input;
|
|
@@ -103,9 +117,17 @@ export default function clickup(rl) {
|
|
|
103
117
|
rl.registerAction("checklistItem.create", {
|
|
104
118
|
description: "Create a checklist item",
|
|
105
119
|
inputSchema: {
|
|
106
|
-
checklistId: {
|
|
120
|
+
checklistId: {
|
|
121
|
+
type: "string",
|
|
122
|
+
required: true,
|
|
123
|
+
description: "Checklist ID",
|
|
124
|
+
},
|
|
107
125
|
name: { type: "string", required: true, description: "Item name" },
|
|
108
|
-
assignee: {
|
|
126
|
+
assignee: {
|
|
127
|
+
type: "number",
|
|
128
|
+
required: false,
|
|
129
|
+
description: "Assignee user ID",
|
|
130
|
+
},
|
|
109
131
|
},
|
|
110
132
|
async execute(input, ctx) {
|
|
111
133
|
const { checklistId, name, assignee } = input;
|
|
@@ -119,12 +141,24 @@ export default function clickup(rl) {
|
|
|
119
141
|
rl.registerAction("checklistItem.update", {
|
|
120
142
|
description: "Update a checklist item",
|
|
121
143
|
inputSchema: {
|
|
122
|
-
checklistId: {
|
|
123
|
-
|
|
144
|
+
checklistId: {
|
|
145
|
+
type: "string",
|
|
146
|
+
required: true,
|
|
147
|
+
description: "Checklist ID",
|
|
148
|
+
},
|
|
149
|
+
checklistItemId: {
|
|
150
|
+
type: "string",
|
|
151
|
+
required: true,
|
|
152
|
+
description: "Checklist item ID",
|
|
153
|
+
},
|
|
124
154
|
name: { type: "string", required: false, description: "Name" },
|
|
125
155
|
assignee: { type: "number", required: false, description: "Assignee" },
|
|
126
156
|
resolved: { type: "boolean", required: false, description: "Resolved" },
|
|
127
|
-
parent: {
|
|
157
|
+
parent: {
|
|
158
|
+
type: "string",
|
|
159
|
+
required: false,
|
|
160
|
+
description: "Parent checklist item ID",
|
|
161
|
+
},
|
|
128
162
|
},
|
|
129
163
|
async execute(input, ctx) {
|
|
130
164
|
const { checklistId, checklistItemId, ...body } = input;
|
|
@@ -135,8 +169,16 @@ export default function clickup(rl) {
|
|
|
135
169
|
rl.registerAction("checklistItem.delete", {
|
|
136
170
|
description: "Delete a checklist item",
|
|
137
171
|
inputSchema: {
|
|
138
|
-
checklistId: {
|
|
139
|
-
|
|
172
|
+
checklistId: {
|
|
173
|
+
type: "string",
|
|
174
|
+
required: true,
|
|
175
|
+
description: "Checklist ID",
|
|
176
|
+
},
|
|
177
|
+
checklistItemId: {
|
|
178
|
+
type: "string",
|
|
179
|
+
required: true,
|
|
180
|
+
description: "Checklist item ID",
|
|
181
|
+
},
|
|
140
182
|
},
|
|
141
183
|
async execute(input, ctx) {
|
|
142
184
|
const { checklistId, checklistItemId } = input;
|
|
@@ -148,11 +190,27 @@ export default function clickup(rl) {
|
|
|
148
190
|
rl.registerAction("comment.create", {
|
|
149
191
|
description: "Create a comment on a task, view, or list",
|
|
150
192
|
inputSchema: {
|
|
151
|
-
commentOn: {
|
|
193
|
+
commentOn: {
|
|
194
|
+
type: "string",
|
|
195
|
+
required: true,
|
|
196
|
+
description: "Resource type: task, view, or list",
|
|
197
|
+
},
|
|
152
198
|
id: { type: "string", required: true, description: "Resource ID" },
|
|
153
|
-
commentText: {
|
|
154
|
-
|
|
155
|
-
|
|
199
|
+
commentText: {
|
|
200
|
+
type: "string",
|
|
201
|
+
required: true,
|
|
202
|
+
description: "Comment text",
|
|
203
|
+
},
|
|
204
|
+
assignee: {
|
|
205
|
+
type: "number",
|
|
206
|
+
required: false,
|
|
207
|
+
description: "Assignee user ID",
|
|
208
|
+
},
|
|
209
|
+
notifyAll: {
|
|
210
|
+
type: "boolean",
|
|
211
|
+
required: false,
|
|
212
|
+
description: "Notify all assignees",
|
|
213
|
+
},
|
|
156
214
|
},
|
|
157
215
|
async execute(input, ctx) {
|
|
158
216
|
const { commentOn, id, commentText, assignee, notifyAll } = input;
|
|
@@ -167,7 +225,11 @@ export default function clickup(rl) {
|
|
|
167
225
|
rl.registerAction("comment.list", {
|
|
168
226
|
description: "List comments on a task, view, or list",
|
|
169
227
|
inputSchema: {
|
|
170
|
-
commentsOn: {
|
|
228
|
+
commentsOn: {
|
|
229
|
+
type: "string",
|
|
230
|
+
required: true,
|
|
231
|
+
description: "Resource type: task, view, or list",
|
|
232
|
+
},
|
|
171
233
|
id: { type: "string", required: true, description: "Resource ID" },
|
|
172
234
|
limit: { type: "number", required: false, description: "Max results" },
|
|
173
235
|
},
|
|
@@ -221,12 +283,16 @@ export default function clickup(rl) {
|
|
|
221
283
|
},
|
|
222
284
|
async execute(input, ctx) {
|
|
223
285
|
const { spaceId, name } = input;
|
|
224
|
-
return apiRequest(getToken(ctx), "POST", `/space/${spaceId}/folder`, {
|
|
286
|
+
return apiRequest(getToken(ctx), "POST", `/space/${spaceId}/folder`, {
|
|
287
|
+
name,
|
|
288
|
+
});
|
|
225
289
|
},
|
|
226
290
|
});
|
|
227
291
|
rl.registerAction("folder.get", {
|
|
228
292
|
description: "Get a folder",
|
|
229
|
-
inputSchema: {
|
|
293
|
+
inputSchema: {
|
|
294
|
+
folderId: { type: "string", required: true, description: "Folder ID" },
|
|
295
|
+
},
|
|
230
296
|
async execute(input, ctx) {
|
|
231
297
|
return apiRequest(getToken(ctx), "GET", `/folder/${input.folderId}`);
|
|
232
298
|
},
|
|
@@ -235,7 +301,11 @@ export default function clickup(rl) {
|
|
|
235
301
|
description: "List folders in a space",
|
|
236
302
|
inputSchema: {
|
|
237
303
|
spaceId: { type: "string", required: true, description: "Space ID" },
|
|
238
|
-
archived: {
|
|
304
|
+
archived: {
|
|
305
|
+
type: "boolean",
|
|
306
|
+
required: false,
|
|
307
|
+
description: "Include archived",
|
|
308
|
+
},
|
|
239
309
|
limit: { type: "number", required: false, description: "Max results" },
|
|
240
310
|
},
|
|
241
311
|
async execute(input, ctx) {
|
|
@@ -263,7 +333,9 @@ export default function clickup(rl) {
|
|
|
263
333
|
});
|
|
264
334
|
rl.registerAction("folder.delete", {
|
|
265
335
|
description: "Delete a folder",
|
|
266
|
-
inputSchema: {
|
|
336
|
+
inputSchema: {
|
|
337
|
+
folderId: { type: "string", required: true, description: "Folder ID" },
|
|
338
|
+
},
|
|
267
339
|
async execute(input, ctx) {
|
|
268
340
|
await apiRequest(getToken(ctx), "DELETE", `/folder/${input.folderId}`);
|
|
269
341
|
return { success: true };
|
|
@@ -275,14 +347,30 @@ export default function clickup(rl) {
|
|
|
275
347
|
inputSchema: {
|
|
276
348
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
277
349
|
name: { type: "string", required: true, description: "Goal name" },
|
|
278
|
-
dueDate: {
|
|
279
|
-
|
|
350
|
+
dueDate: {
|
|
351
|
+
type: "string",
|
|
352
|
+
required: false,
|
|
353
|
+
description: "Due date (ISO 8601)",
|
|
354
|
+
},
|
|
355
|
+
description: {
|
|
356
|
+
type: "string",
|
|
357
|
+
required: false,
|
|
358
|
+
description: "Description",
|
|
359
|
+
},
|
|
280
360
|
color: { type: "string", required: false, description: "Color hex" },
|
|
281
|
-
owners: {
|
|
282
|
-
|
|
361
|
+
owners: {
|
|
362
|
+
type: "array",
|
|
363
|
+
required: false,
|
|
364
|
+
description: "Array of owner user IDs",
|
|
365
|
+
},
|
|
366
|
+
multipleOwners: {
|
|
367
|
+
type: "boolean",
|
|
368
|
+
required: false,
|
|
369
|
+
description: "Allow multiple owners",
|
|
370
|
+
},
|
|
283
371
|
},
|
|
284
372
|
async execute(input, ctx) {
|
|
285
|
-
const { teamId, name, dueDate, description, color, owners, multipleOwners } = input;
|
|
373
|
+
const { teamId, name, dueDate, description, color, owners, multipleOwners, } = input;
|
|
286
374
|
const body = { name };
|
|
287
375
|
if (dueDate)
|
|
288
376
|
body.due_date = new Date(dueDate).getTime();
|
|
@@ -300,7 +388,9 @@ export default function clickup(rl) {
|
|
|
300
388
|
});
|
|
301
389
|
rl.registerAction("goal.get", {
|
|
302
390
|
description: "Get a goal",
|
|
303
|
-
inputSchema: {
|
|
391
|
+
inputSchema: {
|
|
392
|
+
goalId: { type: "string", required: true, description: "Goal ID" },
|
|
393
|
+
},
|
|
304
394
|
async execute(input, ctx) {
|
|
305
395
|
const data = (await apiRequest(getToken(ctx), "GET", `/goal/${input.goalId}`));
|
|
306
396
|
return data.goal;
|
|
@@ -327,10 +417,22 @@ export default function clickup(rl) {
|
|
|
327
417
|
goalId: { type: "string", required: true, description: "Goal ID" },
|
|
328
418
|
name: { type: "string", required: false, description: "Name" },
|
|
329
419
|
dueDate: { type: "string", required: false, description: "Due date" },
|
|
330
|
-
description: {
|
|
420
|
+
description: {
|
|
421
|
+
type: "string",
|
|
422
|
+
required: false,
|
|
423
|
+
description: "Description",
|
|
424
|
+
},
|
|
331
425
|
color: { type: "string", required: false, description: "Color" },
|
|
332
|
-
addOwners: {
|
|
333
|
-
|
|
426
|
+
addOwners: {
|
|
427
|
+
type: "array",
|
|
428
|
+
required: false,
|
|
429
|
+
description: "User IDs to add as owners",
|
|
430
|
+
},
|
|
431
|
+
removeOwners: {
|
|
432
|
+
type: "array",
|
|
433
|
+
required: false,
|
|
434
|
+
description: "User IDs to remove",
|
|
435
|
+
},
|
|
334
436
|
},
|
|
335
437
|
async execute(input, ctx) {
|
|
336
438
|
const { goalId, dueDate, addOwners, removeOwners, ...rest } = input;
|
|
@@ -348,7 +450,9 @@ export default function clickup(rl) {
|
|
|
348
450
|
});
|
|
349
451
|
rl.registerAction("goal.delete", {
|
|
350
452
|
description: "Delete a goal",
|
|
351
|
-
inputSchema: {
|
|
453
|
+
inputSchema: {
|
|
454
|
+
goalId: { type: "string", required: true, description: "Goal ID" },
|
|
455
|
+
},
|
|
352
456
|
async execute(input, ctx) {
|
|
353
457
|
await apiRequest(getToken(ctx), "DELETE", `/goal/${input.goalId}`);
|
|
354
458
|
return { success: true };
|
|
@@ -360,12 +464,32 @@ export default function clickup(rl) {
|
|
|
360
464
|
inputSchema: {
|
|
361
465
|
goalId: { type: "string", required: true, description: "Goal ID" },
|
|
362
466
|
name: { type: "string", required: true, description: "Key result name" },
|
|
363
|
-
type: {
|
|
364
|
-
|
|
365
|
-
|
|
467
|
+
type: {
|
|
468
|
+
type: "string",
|
|
469
|
+
required: true,
|
|
470
|
+
description: "Type: number, currency, boolean, percentage, automatic",
|
|
471
|
+
},
|
|
472
|
+
unit: {
|
|
473
|
+
type: "string",
|
|
474
|
+
required: false,
|
|
475
|
+
description: "Unit (for number/currency)",
|
|
476
|
+
},
|
|
477
|
+
stepsStart: {
|
|
478
|
+
type: "number",
|
|
479
|
+
required: false,
|
|
480
|
+
description: "Start value",
|
|
481
|
+
},
|
|
366
482
|
stepsEnd: { type: "number", required: false, description: "End value" },
|
|
367
|
-
taskIds: {
|
|
368
|
-
|
|
483
|
+
taskIds: {
|
|
484
|
+
type: "array",
|
|
485
|
+
required: false,
|
|
486
|
+
description: "Task IDs (for automatic type)",
|
|
487
|
+
},
|
|
488
|
+
listIds: {
|
|
489
|
+
type: "array",
|
|
490
|
+
required: false,
|
|
491
|
+
description: "List IDs (for automatic type)",
|
|
492
|
+
},
|
|
369
493
|
owners: { type: "array", required: false, description: "Owner user IDs" },
|
|
370
494
|
},
|
|
371
495
|
async execute(input, ctx) {
|
|
@@ -387,11 +511,23 @@ export default function clickup(rl) {
|
|
|
387
511
|
rl.registerAction("goalKeyResult.update", {
|
|
388
512
|
description: "Update a key result",
|
|
389
513
|
inputSchema: {
|
|
390
|
-
keyResultId: {
|
|
514
|
+
keyResultId: {
|
|
515
|
+
type: "string",
|
|
516
|
+
required: true,
|
|
517
|
+
description: "Key result ID",
|
|
518
|
+
},
|
|
391
519
|
name: { type: "string", required: false, description: "Name" },
|
|
392
520
|
note: { type: "string", required: false, description: "Note" },
|
|
393
|
-
stepsCurrent: {
|
|
394
|
-
|
|
521
|
+
stepsCurrent: {
|
|
522
|
+
type: "number",
|
|
523
|
+
required: false,
|
|
524
|
+
description: "Current steps",
|
|
525
|
+
},
|
|
526
|
+
stepsStart: {
|
|
527
|
+
type: "number",
|
|
528
|
+
required: false,
|
|
529
|
+
description: "Start steps",
|
|
530
|
+
},
|
|
395
531
|
stepsEnd: { type: "number", required: false, description: "End steps" },
|
|
396
532
|
unit: { type: "string", required: false, description: "Unit" },
|
|
397
533
|
},
|
|
@@ -411,7 +547,13 @@ export default function clickup(rl) {
|
|
|
411
547
|
});
|
|
412
548
|
rl.registerAction("goalKeyResult.delete", {
|
|
413
549
|
description: "Delete a key result",
|
|
414
|
-
inputSchema: {
|
|
550
|
+
inputSchema: {
|
|
551
|
+
keyResultId: {
|
|
552
|
+
type: "string",
|
|
553
|
+
required: true,
|
|
554
|
+
description: "Key result ID",
|
|
555
|
+
},
|
|
556
|
+
},
|
|
415
557
|
async execute(input, ctx) {
|
|
416
558
|
await apiRequest(getToken(ctx), "DELETE", `/key_result/${input.keyResultId}`);
|
|
417
559
|
return { success: true };
|
|
@@ -423,12 +565,24 @@ export default function clickup(rl) {
|
|
|
423
565
|
inputSchema: {
|
|
424
566
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
425
567
|
email: { type: "string", required: true, description: "Guest email" },
|
|
426
|
-
canEditTags: {
|
|
427
|
-
|
|
428
|
-
|
|
568
|
+
canEditTags: {
|
|
569
|
+
type: "boolean",
|
|
570
|
+
required: false,
|
|
571
|
+
description: "Can edit tags",
|
|
572
|
+
},
|
|
573
|
+
canSeeTimeSpend: {
|
|
574
|
+
type: "boolean",
|
|
575
|
+
required: false,
|
|
576
|
+
description: "Can see time spent",
|
|
577
|
+
},
|
|
578
|
+
canSeeTimeEstimated: {
|
|
579
|
+
type: "boolean",
|
|
580
|
+
required: false,
|
|
581
|
+
description: "Can see time estimated",
|
|
582
|
+
},
|
|
429
583
|
},
|
|
430
584
|
async execute(input, ctx) {
|
|
431
|
-
const { teamId, email, canEditTags, canSeeTimeSpend, canSeeTimeEstimated } = input;
|
|
585
|
+
const { teamId, email, canEditTags, canSeeTimeSpend, canSeeTimeEstimated, } = input;
|
|
432
586
|
const body = { email };
|
|
433
587
|
if (canEditTags !== undefined)
|
|
434
588
|
body.can_edit_tags = canEditTags;
|
|
@@ -458,9 +612,21 @@ export default function clickup(rl) {
|
|
|
458
612
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
459
613
|
guestId: { type: "string", required: true, description: "Guest ID" },
|
|
460
614
|
username: { type: "string", required: false, description: "Username" },
|
|
461
|
-
canEditTags: {
|
|
462
|
-
|
|
463
|
-
|
|
615
|
+
canEditTags: {
|
|
616
|
+
type: "boolean",
|
|
617
|
+
required: false,
|
|
618
|
+
description: "Can edit tags",
|
|
619
|
+
},
|
|
620
|
+
canSeeTimeSpend: {
|
|
621
|
+
type: "boolean",
|
|
622
|
+
required: false,
|
|
623
|
+
description: "Can see time spent",
|
|
624
|
+
},
|
|
625
|
+
canSeeTimeEstimated: {
|
|
626
|
+
type: "boolean",
|
|
627
|
+
required: false,
|
|
628
|
+
description: "Can see time estimated",
|
|
629
|
+
},
|
|
464
630
|
},
|
|
465
631
|
async execute(input, ctx) {
|
|
466
632
|
const { teamId, guestId, ...body } = input;
|
|
@@ -486,18 +652,58 @@ export default function clickup(rl) {
|
|
|
486
652
|
inputSchema: {
|
|
487
653
|
listId: { type: "string", required: true, description: "List ID" },
|
|
488
654
|
name: { type: "string", required: true, description: "Task name" },
|
|
489
|
-
content: {
|
|
490
|
-
|
|
491
|
-
|
|
655
|
+
content: {
|
|
656
|
+
type: "string",
|
|
657
|
+
required: false,
|
|
658
|
+
description: "Task description",
|
|
659
|
+
},
|
|
660
|
+
markdownContent: {
|
|
661
|
+
type: "string",
|
|
662
|
+
required: false,
|
|
663
|
+
description: "Markdown description",
|
|
664
|
+
},
|
|
665
|
+
assignees: {
|
|
666
|
+
type: "array",
|
|
667
|
+
required: false,
|
|
668
|
+
description: "Assignee user IDs",
|
|
669
|
+
},
|
|
492
670
|
tags: { type: "array", required: false, description: "Tag names" },
|
|
493
671
|
status: { type: "string", required: false, description: "Status" },
|
|
494
|
-
priority: {
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
672
|
+
priority: {
|
|
673
|
+
type: "number",
|
|
674
|
+
required: false,
|
|
675
|
+
description: "Priority (1=urgent, 2=high, 3=normal, 4=low)",
|
|
676
|
+
},
|
|
677
|
+
dueDate: {
|
|
678
|
+
type: "string",
|
|
679
|
+
required: false,
|
|
680
|
+
description: "Due date (ISO 8601)",
|
|
681
|
+
},
|
|
682
|
+
startDate: {
|
|
683
|
+
type: "string",
|
|
684
|
+
required: false,
|
|
685
|
+
description: "Start date (ISO 8601)",
|
|
686
|
+
},
|
|
687
|
+
timeEstimate: {
|
|
688
|
+
type: "number",
|
|
689
|
+
required: false,
|
|
690
|
+
description: "Time estimate in minutes",
|
|
691
|
+
},
|
|
692
|
+
notifyAll: {
|
|
693
|
+
type: "boolean",
|
|
694
|
+
required: false,
|
|
695
|
+
description: "Notify all assignees",
|
|
696
|
+
},
|
|
697
|
+
parentId: {
|
|
698
|
+
type: "string",
|
|
699
|
+
required: false,
|
|
700
|
+
description: "Parent task ID (for subtask)",
|
|
701
|
+
},
|
|
702
|
+
customFields: {
|
|
703
|
+
type: "array",
|
|
704
|
+
required: false,
|
|
705
|
+
description: "Custom fields array [{id, value}]",
|
|
706
|
+
},
|
|
501
707
|
},
|
|
502
708
|
async execute(input, ctx) {
|
|
503
709
|
const { listId, dueDate, startDate, timeEstimate, markdownContent, parentId, customFields, ...rest } = input;
|
|
@@ -524,7 +730,11 @@ export default function clickup(rl) {
|
|
|
524
730
|
description: "Get a task",
|
|
525
731
|
inputSchema: {
|
|
526
732
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
527
|
-
includeSubtasks: {
|
|
733
|
+
includeSubtasks: {
|
|
734
|
+
type: "boolean",
|
|
735
|
+
required: false,
|
|
736
|
+
description: "Include subtasks",
|
|
737
|
+
},
|
|
528
738
|
},
|
|
529
739
|
async execute(input, ctx) {
|
|
530
740
|
const { taskId, includeSubtasks } = input;
|
|
@@ -538,14 +748,42 @@ export default function clickup(rl) {
|
|
|
538
748
|
description: "List tasks in a list",
|
|
539
749
|
inputSchema: {
|
|
540
750
|
listId: { type: "string", required: true, description: "List ID" },
|
|
541
|
-
archived: {
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
751
|
+
archived: {
|
|
752
|
+
type: "boolean",
|
|
753
|
+
required: false,
|
|
754
|
+
description: "Include archived",
|
|
755
|
+
},
|
|
756
|
+
subtasks: {
|
|
757
|
+
type: "boolean",
|
|
758
|
+
required: false,
|
|
759
|
+
description: "Include subtasks",
|
|
760
|
+
},
|
|
761
|
+
includeClosed: {
|
|
762
|
+
type: "boolean",
|
|
763
|
+
required: false,
|
|
764
|
+
description: "Include closed",
|
|
765
|
+
},
|
|
766
|
+
orderBy: {
|
|
767
|
+
type: "string",
|
|
768
|
+
required: false,
|
|
769
|
+
description: "Order by field",
|
|
770
|
+
},
|
|
771
|
+
statuses: {
|
|
772
|
+
type: "array",
|
|
773
|
+
required: false,
|
|
774
|
+
description: "Filter by statuses",
|
|
775
|
+
},
|
|
776
|
+
assignees: {
|
|
777
|
+
type: "array",
|
|
778
|
+
required: false,
|
|
779
|
+
description: "Filter by assignee IDs",
|
|
780
|
+
},
|
|
547
781
|
tags: { type: "array", required: false, description: "Filter by tags" },
|
|
548
|
-
limit: {
|
|
782
|
+
limit: {
|
|
783
|
+
type: "number",
|
|
784
|
+
required: false,
|
|
785
|
+
description: "Max results (omit for all)",
|
|
786
|
+
},
|
|
549
787
|
},
|
|
550
788
|
async execute(input, ctx) {
|
|
551
789
|
const { listId, limit, ...filters } = (input ?? {});
|
|
@@ -577,9 +815,21 @@ export default function clickup(rl) {
|
|
|
577
815
|
priority: { type: "number", required: false, description: "Priority" },
|
|
578
816
|
dueDate: { type: "string", required: false, description: "Due date" },
|
|
579
817
|
startDate: { type: "string", required: false, description: "Start date" },
|
|
580
|
-
timeEstimate: {
|
|
581
|
-
|
|
582
|
-
|
|
818
|
+
timeEstimate: {
|
|
819
|
+
type: "number",
|
|
820
|
+
required: false,
|
|
821
|
+
description: "Time estimate (minutes)",
|
|
822
|
+
},
|
|
823
|
+
addAssignees: {
|
|
824
|
+
type: "array",
|
|
825
|
+
required: false,
|
|
826
|
+
description: "User IDs to add",
|
|
827
|
+
},
|
|
828
|
+
removeAssignees: {
|
|
829
|
+
type: "array",
|
|
830
|
+
required: false,
|
|
831
|
+
description: "User IDs to remove",
|
|
832
|
+
},
|
|
583
833
|
},
|
|
584
834
|
async execute(input, ctx) {
|
|
585
835
|
const { taskId, dueDate, startDate, timeEstimate, addAssignees, removeAssignees, ...rest } = input;
|
|
@@ -597,7 +847,9 @@ export default function clickup(rl) {
|
|
|
597
847
|
});
|
|
598
848
|
rl.registerAction("task.delete", {
|
|
599
849
|
description: "Delete a task",
|
|
600
|
-
inputSchema: {
|
|
850
|
+
inputSchema: {
|
|
851
|
+
taskId: { type: "string", required: true, description: "Task ID" },
|
|
852
|
+
},
|
|
601
853
|
async execute(input, ctx) {
|
|
602
854
|
await apiRequest(getToken(ctx), "DELETE", `/task/${input.taskId}`);
|
|
603
855
|
return { success: true };
|
|
@@ -622,8 +874,16 @@ export default function clickup(rl) {
|
|
|
622
874
|
description: "Set a custom field value on a task",
|
|
623
875
|
inputSchema: {
|
|
624
876
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
625
|
-
fieldId: {
|
|
626
|
-
|
|
877
|
+
fieldId: {
|
|
878
|
+
type: "string",
|
|
879
|
+
required: true,
|
|
880
|
+
description: "Custom field ID",
|
|
881
|
+
},
|
|
882
|
+
value: {
|
|
883
|
+
type: "string",
|
|
884
|
+
required: true,
|
|
885
|
+
description: "Value (string, number, or JSON)",
|
|
886
|
+
},
|
|
627
887
|
},
|
|
628
888
|
async execute(input, ctx) {
|
|
629
889
|
const { taskId, fieldId, value } = input;
|
|
@@ -685,11 +945,17 @@ export default function clickup(rl) {
|
|
|
685
945
|
description: "Add a dependency to a task",
|
|
686
946
|
inputSchema: {
|
|
687
947
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
688
|
-
dependsOnTaskId: {
|
|
948
|
+
dependsOnTaskId: {
|
|
949
|
+
type: "string",
|
|
950
|
+
required: true,
|
|
951
|
+
description: "Task this depends on",
|
|
952
|
+
},
|
|
689
953
|
},
|
|
690
954
|
async execute(input, ctx) {
|
|
691
955
|
const { taskId, dependsOnTaskId } = input;
|
|
692
|
-
await apiRequest(getToken(ctx), "POST", `/task/${taskId}/dependency`, {
|
|
956
|
+
await apiRequest(getToken(ctx), "POST", `/task/${taskId}/dependency`, {
|
|
957
|
+
depends_on: dependsOnTaskId,
|
|
958
|
+
});
|
|
693
959
|
return { success: true };
|
|
694
960
|
},
|
|
695
961
|
});
|
|
@@ -697,7 +963,11 @@ export default function clickup(rl) {
|
|
|
697
963
|
description: "Remove a dependency from a task",
|
|
698
964
|
inputSchema: {
|
|
699
965
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
700
|
-
dependsOnTaskId: {
|
|
966
|
+
dependsOnTaskId: {
|
|
967
|
+
type: "string",
|
|
968
|
+
required: true,
|
|
969
|
+
description: "Dependent task ID",
|
|
970
|
+
},
|
|
701
971
|
},
|
|
702
972
|
async execute(input, ctx) {
|
|
703
973
|
const { taskId, dependsOnTaskId } = input;
|
|
@@ -711,8 +981,16 @@ export default function clickup(rl) {
|
|
|
711
981
|
inputSchema: {
|
|
712
982
|
spaceId: { type: "string", required: true, description: "Space ID" },
|
|
713
983
|
name: { type: "string", required: true, description: "Tag name" },
|
|
714
|
-
foregroundColor: {
|
|
715
|
-
|
|
984
|
+
foregroundColor: {
|
|
985
|
+
type: "string",
|
|
986
|
+
required: true,
|
|
987
|
+
description: "Text color hex",
|
|
988
|
+
},
|
|
989
|
+
backgroundColor: {
|
|
990
|
+
type: "string",
|
|
991
|
+
required: true,
|
|
992
|
+
description: "Background color hex",
|
|
993
|
+
},
|
|
716
994
|
},
|
|
717
995
|
async execute(input, ctx) {
|
|
718
996
|
const { spaceId, name, foregroundColor, backgroundColor } = input;
|
|
@@ -741,15 +1019,31 @@ export default function clickup(rl) {
|
|
|
741
1019
|
description: "Update a space tag",
|
|
742
1020
|
inputSchema: {
|
|
743
1021
|
spaceId: { type: "string", required: true, description: "Space ID" },
|
|
744
|
-
tagName: {
|
|
1022
|
+
tagName: {
|
|
1023
|
+
type: "string",
|
|
1024
|
+
required: true,
|
|
1025
|
+
description: "Current tag name",
|
|
1026
|
+
},
|
|
745
1027
|
newName: { type: "string", required: true, description: "New tag name" },
|
|
746
|
-
foregroundColor: {
|
|
747
|
-
|
|
1028
|
+
foregroundColor: {
|
|
1029
|
+
type: "string",
|
|
1030
|
+
required: true,
|
|
1031
|
+
description: "Text color hex",
|
|
1032
|
+
},
|
|
1033
|
+
backgroundColor: {
|
|
1034
|
+
type: "string",
|
|
1035
|
+
required: true,
|
|
1036
|
+
description: "Background color hex",
|
|
1037
|
+
},
|
|
748
1038
|
},
|
|
749
1039
|
async execute(input, ctx) {
|
|
750
1040
|
const { spaceId, tagName, newName, foregroundColor, backgroundColor } = input;
|
|
751
1041
|
await apiRequest(getToken(ctx), "PUT", `/space/${spaceId}/tag/${tagName}`, {
|
|
752
|
-
tag: {
|
|
1042
|
+
tag: {
|
|
1043
|
+
name: newName,
|
|
1044
|
+
tag_fg: foregroundColor,
|
|
1045
|
+
tag_bg: backgroundColor,
|
|
1046
|
+
},
|
|
753
1047
|
});
|
|
754
1048
|
return { success: true };
|
|
755
1049
|
},
|
|
@@ -771,12 +1065,24 @@ export default function clickup(rl) {
|
|
|
771
1065
|
description: "Create a list (in a folder or folderless in a space)",
|
|
772
1066
|
inputSchema: {
|
|
773
1067
|
name: { type: "string", required: true, description: "List name" },
|
|
774
|
-
spaceId: {
|
|
775
|
-
|
|
1068
|
+
spaceId: {
|
|
1069
|
+
type: "string",
|
|
1070
|
+
required: false,
|
|
1071
|
+
description: "Space ID (for folderless list)",
|
|
1072
|
+
},
|
|
1073
|
+
folderId: {
|
|
1074
|
+
type: "string",
|
|
1075
|
+
required: false,
|
|
1076
|
+
description: "Folder ID (for list in folder)",
|
|
1077
|
+
},
|
|
776
1078
|
content: { type: "string", required: false, description: "Description" },
|
|
777
1079
|
dueDate: { type: "string", required: false, description: "Due date" },
|
|
778
1080
|
priority: { type: "number", required: false, description: "Priority" },
|
|
779
|
-
assignee: {
|
|
1081
|
+
assignee: {
|
|
1082
|
+
type: "number",
|
|
1083
|
+
required: false,
|
|
1084
|
+
description: "Assignee user ID",
|
|
1085
|
+
},
|
|
780
1086
|
status: { type: "string", required: false, description: "Status" },
|
|
781
1087
|
},
|
|
782
1088
|
async execute(input, ctx) {
|
|
@@ -786,13 +1092,17 @@ export default function clickup(rl) {
|
|
|
786
1092
|
delete body.folderId;
|
|
787
1093
|
if (dueDate)
|
|
788
1094
|
body.due_date = new Date(dueDate).getTime();
|
|
789
|
-
const endpoint = folderId
|
|
1095
|
+
const endpoint = folderId
|
|
1096
|
+
? `/folder/${folderId}/list`
|
|
1097
|
+
: `/space/${spaceId}/list`;
|
|
790
1098
|
return apiRequest(getToken(ctx), "POST", endpoint, body);
|
|
791
1099
|
},
|
|
792
1100
|
});
|
|
793
1101
|
rl.registerAction("list.get", {
|
|
794
1102
|
description: "Get a list",
|
|
795
|
-
inputSchema: {
|
|
1103
|
+
inputSchema: {
|
|
1104
|
+
listId: { type: "string", required: true, description: "List ID" },
|
|
1105
|
+
},
|
|
796
1106
|
async execute(input, ctx) {
|
|
797
1107
|
return apiRequest(getToken(ctx), "GET", `/list/${input.listId}`);
|
|
798
1108
|
},
|
|
@@ -800,9 +1110,17 @@ export default function clickup(rl) {
|
|
|
800
1110
|
rl.registerAction("list.list", {
|
|
801
1111
|
description: "List lists in a folder or space",
|
|
802
1112
|
inputSchema: {
|
|
803
|
-
spaceId: {
|
|
1113
|
+
spaceId: {
|
|
1114
|
+
type: "string",
|
|
1115
|
+
required: false,
|
|
1116
|
+
description: "Space ID (for folderless)",
|
|
1117
|
+
},
|
|
804
1118
|
folderId: { type: "string", required: false, description: "Folder ID" },
|
|
805
|
-
archived: {
|
|
1119
|
+
archived: {
|
|
1120
|
+
type: "boolean",
|
|
1121
|
+
required: false,
|
|
1122
|
+
description: "Include archived",
|
|
1123
|
+
},
|
|
806
1124
|
limit: { type: "number", required: false, description: "Max results" },
|
|
807
1125
|
},
|
|
808
1126
|
async execute(input, ctx) {
|
|
@@ -810,7 +1128,9 @@ export default function clickup(rl) {
|
|
|
810
1128
|
const qs = {};
|
|
811
1129
|
if (archived)
|
|
812
1130
|
qs.archived = archived;
|
|
813
|
-
const endpoint = folderId
|
|
1131
|
+
const endpoint = folderId
|
|
1132
|
+
? `/folder/${folderId}/list`
|
|
1133
|
+
: `/space/${spaceId}/list`;
|
|
814
1134
|
const data = (await apiRequest(getToken(ctx), "GET", endpoint, undefined, qs));
|
|
815
1135
|
const lists = data.lists ?? [];
|
|
816
1136
|
if (limit)
|
|
@@ -827,7 +1147,11 @@ export default function clickup(rl) {
|
|
|
827
1147
|
dueDate: { type: "string", required: false, description: "Due date" },
|
|
828
1148
|
priority: { type: "number", required: false, description: "Priority" },
|
|
829
1149
|
assignee: { type: "number", required: false, description: "Assignee" },
|
|
830
|
-
unsetStatus: {
|
|
1150
|
+
unsetStatus: {
|
|
1151
|
+
type: "boolean",
|
|
1152
|
+
required: false,
|
|
1153
|
+
description: "Unset status",
|
|
1154
|
+
},
|
|
831
1155
|
},
|
|
832
1156
|
async execute(input, ctx) {
|
|
833
1157
|
const { listId, dueDate, ...rest } = input;
|
|
@@ -840,7 +1164,9 @@ export default function clickup(rl) {
|
|
|
840
1164
|
});
|
|
841
1165
|
rl.registerAction("list.delete", {
|
|
842
1166
|
description: "Delete a list",
|
|
843
|
-
inputSchema: {
|
|
1167
|
+
inputSchema: {
|
|
1168
|
+
listId: { type: "string", required: true, description: "List ID" },
|
|
1169
|
+
},
|
|
844
1170
|
async execute(input, ctx) {
|
|
845
1171
|
await apiRequest(getToken(ctx), "DELETE", `/list/${input.listId}`);
|
|
846
1172
|
return { success: true };
|
|
@@ -863,7 +1189,9 @@ export default function clickup(rl) {
|
|
|
863
1189
|
});
|
|
864
1190
|
rl.registerAction("list.getCustomFields", {
|
|
865
1191
|
description: "Get custom fields for a list",
|
|
866
|
-
inputSchema: {
|
|
1192
|
+
inputSchema: {
|
|
1193
|
+
listId: { type: "string", required: true, description: "List ID" },
|
|
1194
|
+
},
|
|
867
1195
|
async execute(input, ctx) {
|
|
868
1196
|
const data = (await apiRequest(getToken(ctx), "GET", `/list/${input.listId}/field`));
|
|
869
1197
|
return data.fields;
|
|
@@ -875,9 +1203,21 @@ export default function clickup(rl) {
|
|
|
875
1203
|
inputSchema: {
|
|
876
1204
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
877
1205
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
878
|
-
start: {
|
|
879
|
-
|
|
880
|
-
|
|
1206
|
+
start: {
|
|
1207
|
+
type: "string",
|
|
1208
|
+
required: true,
|
|
1209
|
+
description: "Start time (ISO 8601)",
|
|
1210
|
+
},
|
|
1211
|
+
duration: {
|
|
1212
|
+
type: "number",
|
|
1213
|
+
required: true,
|
|
1214
|
+
description: "Duration in minutes",
|
|
1215
|
+
},
|
|
1216
|
+
description: {
|
|
1217
|
+
type: "string",
|
|
1218
|
+
required: false,
|
|
1219
|
+
description: "Description",
|
|
1220
|
+
},
|
|
881
1221
|
billable: { type: "boolean", required: false, description: "Billable" },
|
|
882
1222
|
},
|
|
883
1223
|
async execute(input, ctx) {
|
|
@@ -897,7 +1237,11 @@ export default function clickup(rl) {
|
|
|
897
1237
|
description: "Get a time entry (or current running timer)",
|
|
898
1238
|
inputSchema: {
|
|
899
1239
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
900
|
-
timeEntryId: {
|
|
1240
|
+
timeEntryId: {
|
|
1241
|
+
type: "string",
|
|
1242
|
+
required: false,
|
|
1243
|
+
description: "Time entry ID (omit for current)",
|
|
1244
|
+
},
|
|
901
1245
|
},
|
|
902
1246
|
async execute(input, ctx) {
|
|
903
1247
|
const { teamId, timeEntryId } = input;
|
|
@@ -912,13 +1256,26 @@ export default function clickup(rl) {
|
|
|
912
1256
|
description: "List time entries for a team",
|
|
913
1257
|
inputSchema: {
|
|
914
1258
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
915
|
-
startDate: {
|
|
916
|
-
|
|
917
|
-
|
|
1259
|
+
startDate: {
|
|
1260
|
+
type: "string",
|
|
1261
|
+
required: false,
|
|
1262
|
+
description: "Start date filter",
|
|
1263
|
+
},
|
|
1264
|
+
endDate: {
|
|
1265
|
+
type: "string",
|
|
1266
|
+
required: false,
|
|
1267
|
+
description: "End date filter",
|
|
1268
|
+
},
|
|
1269
|
+
assignee: {
|
|
1270
|
+
type: "array",
|
|
1271
|
+
required: false,
|
|
1272
|
+
description: "Assignee user IDs",
|
|
1273
|
+
},
|
|
918
1274
|
limit: { type: "number", required: false, description: "Max results" },
|
|
919
1275
|
},
|
|
920
1276
|
async execute(input, ctx) {
|
|
921
|
-
const { teamId, startDate, endDate, assignee, limit } = (input ??
|
|
1277
|
+
const { teamId, startDate, endDate, assignee, limit } = (input ??
|
|
1278
|
+
{});
|
|
922
1279
|
const qs = {};
|
|
923
1280
|
if (startDate)
|
|
924
1281
|
qs.start_date = new Date(startDate).getTime();
|
|
@@ -937,10 +1294,22 @@ export default function clickup(rl) {
|
|
|
937
1294
|
description: "Update a time entry",
|
|
938
1295
|
inputSchema: {
|
|
939
1296
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
940
|
-
timeEntryId: {
|
|
1297
|
+
timeEntryId: {
|
|
1298
|
+
type: "string",
|
|
1299
|
+
required: true,
|
|
1300
|
+
description: "Time entry ID",
|
|
1301
|
+
},
|
|
941
1302
|
start: { type: "string", required: false, description: "Start time" },
|
|
942
|
-
duration: {
|
|
943
|
-
|
|
1303
|
+
duration: {
|
|
1304
|
+
type: "number",
|
|
1305
|
+
required: false,
|
|
1306
|
+
description: "Duration in minutes",
|
|
1307
|
+
},
|
|
1308
|
+
description: {
|
|
1309
|
+
type: "string",
|
|
1310
|
+
required: false,
|
|
1311
|
+
description: "Description",
|
|
1312
|
+
},
|
|
944
1313
|
billable: { type: "boolean", required: false, description: "Billable" },
|
|
945
1314
|
},
|
|
946
1315
|
async execute(input, ctx) {
|
|
@@ -959,7 +1328,11 @@ export default function clickup(rl) {
|
|
|
959
1328
|
inputSchema: {
|
|
960
1329
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
961
1330
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
962
|
-
description: {
|
|
1331
|
+
description: {
|
|
1332
|
+
type: "string",
|
|
1333
|
+
required: false,
|
|
1334
|
+
description: "Description",
|
|
1335
|
+
},
|
|
963
1336
|
billable: { type: "boolean", required: false, description: "Billable" },
|
|
964
1337
|
},
|
|
965
1338
|
async execute(input, ctx) {
|
|
@@ -984,7 +1357,11 @@ export default function clickup(rl) {
|
|
|
984
1357
|
description: "Delete a time entry",
|
|
985
1358
|
inputSchema: {
|
|
986
1359
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
987
|
-
timeEntryId: {
|
|
1360
|
+
timeEntryId: {
|
|
1361
|
+
type: "string",
|
|
1362
|
+
required: true,
|
|
1363
|
+
description: "Time entry ID",
|
|
1364
|
+
},
|
|
988
1365
|
},
|
|
989
1366
|
async execute(input, ctx) {
|
|
990
1367
|
const { teamId, timeEntryId } = input;
|
|
@@ -997,8 +1374,16 @@ export default function clickup(rl) {
|
|
|
997
1374
|
description: "Add tags to time entries",
|
|
998
1375
|
inputSchema: {
|
|
999
1376
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
1000
|
-
timeEntryIds: {
|
|
1001
|
-
|
|
1377
|
+
timeEntryIds: {
|
|
1378
|
+
type: "array",
|
|
1379
|
+
required: true,
|
|
1380
|
+
description: "Array of time entry IDs",
|
|
1381
|
+
},
|
|
1382
|
+
tags: {
|
|
1383
|
+
type: "array",
|
|
1384
|
+
required: true,
|
|
1385
|
+
description: "Array of {name, tag_bg, tag_fg} objects",
|
|
1386
|
+
},
|
|
1002
1387
|
},
|
|
1003
1388
|
async execute(input, ctx) {
|
|
1004
1389
|
const { teamId, timeEntryIds, tags } = input;
|
|
@@ -1028,8 +1413,16 @@ export default function clickup(rl) {
|
|
|
1028
1413
|
description: "Remove tags from time entries",
|
|
1029
1414
|
inputSchema: {
|
|
1030
1415
|
teamId: { type: "string", required: true, description: "Team ID" },
|
|
1031
|
-
timeEntryIds: {
|
|
1032
|
-
|
|
1416
|
+
timeEntryIds: {
|
|
1417
|
+
type: "array",
|
|
1418
|
+
required: true,
|
|
1419
|
+
description: "Array of time entry IDs",
|
|
1420
|
+
},
|
|
1421
|
+
tagNames: {
|
|
1422
|
+
type: "array",
|
|
1423
|
+
required: true,
|
|
1424
|
+
description: "Array of tag names to remove",
|
|
1425
|
+
},
|
|
1033
1426
|
},
|
|
1034
1427
|
async execute(input, ctx) {
|
|
1035
1428
|
const { teamId, timeEntryIds, tagNames } = input;
|