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
|
@@ -11,7 +11,10 @@ async function apiRequest(apiKey, method, endpoint, body, qs) {
|
|
|
11
11
|
method,
|
|
12
12
|
headers: { "Content-Type": "application/json", "X-Api-Key": apiKey },
|
|
13
13
|
};
|
|
14
|
-
if (body &&
|
|
14
|
+
if (body &&
|
|
15
|
+
Object.keys(body).length > 0 &&
|
|
16
|
+
method !== "GET" &&
|
|
17
|
+
method !== "DELETE") {
|
|
15
18
|
opts.body = JSON.stringify(body);
|
|
16
19
|
}
|
|
17
20
|
const res = await fetch(url.toString(), opts);
|
|
@@ -31,7 +34,11 @@ async function paginateAll(apiKey, endpoint, qs, limit) {
|
|
|
31
34
|
let page = 1;
|
|
32
35
|
const size = 50;
|
|
33
36
|
while (true) {
|
|
34
|
-
const data = (await apiRequest(apiKey, "GET", endpoint, undefined, {
|
|
37
|
+
const data = (await apiRequest(apiKey, "GET", endpoint, undefined, {
|
|
38
|
+
...qs,
|
|
39
|
+
page,
|
|
40
|
+
"page-size": size,
|
|
41
|
+
}));
|
|
35
42
|
if (!Array.isArray(data))
|
|
36
43
|
break;
|
|
37
44
|
results.push(...data);
|
|
@@ -61,7 +68,11 @@ export default function clockify(rl) {
|
|
|
61
68
|
rl.registerAction("client.create", {
|
|
62
69
|
description: "Create a client",
|
|
63
70
|
inputSchema: {
|
|
64
|
-
workspaceId: {
|
|
71
|
+
workspaceId: {
|
|
72
|
+
type: "string",
|
|
73
|
+
required: true,
|
|
74
|
+
description: "Workspace ID",
|
|
75
|
+
},
|
|
65
76
|
name: { type: "string", required: true, description: "Client name" },
|
|
66
77
|
},
|
|
67
78
|
async execute(input, ctx) {
|
|
@@ -72,7 +83,11 @@ export default function clockify(rl) {
|
|
|
72
83
|
rl.registerAction("client.get", {
|
|
73
84
|
description: "Get a client",
|
|
74
85
|
inputSchema: {
|
|
75
|
-
workspaceId: {
|
|
86
|
+
workspaceId: {
|
|
87
|
+
type: "string",
|
|
88
|
+
required: true,
|
|
89
|
+
description: "Workspace ID",
|
|
90
|
+
},
|
|
76
91
|
clientId: { type: "string", required: true, description: "Client ID" },
|
|
77
92
|
},
|
|
78
93
|
async execute(input, ctx) {
|
|
@@ -83,9 +98,17 @@ export default function clockify(rl) {
|
|
|
83
98
|
rl.registerAction("client.list", {
|
|
84
99
|
description: "List clients in a workspace",
|
|
85
100
|
inputSchema: {
|
|
86
|
-
workspaceId: {
|
|
101
|
+
workspaceId: {
|
|
102
|
+
type: "string",
|
|
103
|
+
required: true,
|
|
104
|
+
description: "Workspace ID",
|
|
105
|
+
},
|
|
87
106
|
name: { type: "string", required: false, description: "Filter by name" },
|
|
88
|
-
archived: {
|
|
107
|
+
archived: {
|
|
108
|
+
type: "boolean",
|
|
109
|
+
required: false,
|
|
110
|
+
description: "Include archived",
|
|
111
|
+
},
|
|
89
112
|
limit: { type: "number", required: false, description: "Max results" },
|
|
90
113
|
},
|
|
91
114
|
async execute(input, ctx) {
|
|
@@ -101,7 +124,11 @@ export default function clockify(rl) {
|
|
|
101
124
|
rl.registerAction("client.update", {
|
|
102
125
|
description: "Update a client",
|
|
103
126
|
inputSchema: {
|
|
104
|
-
workspaceId: {
|
|
127
|
+
workspaceId: {
|
|
128
|
+
type: "string",
|
|
129
|
+
required: true,
|
|
130
|
+
description: "Workspace ID",
|
|
131
|
+
},
|
|
105
132
|
clientId: { type: "string", required: true, description: "Client ID" },
|
|
106
133
|
name: { type: "string", required: true, description: "Client name" },
|
|
107
134
|
archived: { type: "boolean", required: false, description: "Archived" },
|
|
@@ -114,7 +141,11 @@ export default function clockify(rl) {
|
|
|
114
141
|
rl.registerAction("client.delete", {
|
|
115
142
|
description: "Delete a client",
|
|
116
143
|
inputSchema: {
|
|
117
|
-
workspaceId: {
|
|
144
|
+
workspaceId: {
|
|
145
|
+
type: "string",
|
|
146
|
+
required: true,
|
|
147
|
+
description: "Workspace ID",
|
|
148
|
+
},
|
|
118
149
|
clientId: { type: "string", required: true, description: "Client ID" },
|
|
119
150
|
},
|
|
120
151
|
async execute(input, ctx) {
|
|
@@ -127,10 +158,18 @@ export default function clockify(rl) {
|
|
|
127
158
|
rl.registerAction("project.create", {
|
|
128
159
|
description: "Create a project",
|
|
129
160
|
inputSchema: {
|
|
130
|
-
workspaceId: {
|
|
161
|
+
workspaceId: {
|
|
162
|
+
type: "string",
|
|
163
|
+
required: true,
|
|
164
|
+
description: "Workspace ID",
|
|
165
|
+
},
|
|
131
166
|
name: { type: "string", required: true, description: "Project name" },
|
|
132
167
|
clientId: { type: "string", required: false, description: "Client ID" },
|
|
133
|
-
isPublic: {
|
|
168
|
+
isPublic: {
|
|
169
|
+
type: "boolean",
|
|
170
|
+
required: false,
|
|
171
|
+
description: "Public project",
|
|
172
|
+
},
|
|
134
173
|
billable: { type: "boolean", required: false, description: "Billable" },
|
|
135
174
|
color: { type: "string", required: false, description: "Color hex" },
|
|
136
175
|
note: { type: "string", required: false, description: "Note" },
|
|
@@ -143,7 +182,11 @@ export default function clockify(rl) {
|
|
|
143
182
|
rl.registerAction("project.get", {
|
|
144
183
|
description: "Get a project",
|
|
145
184
|
inputSchema: {
|
|
146
|
-
workspaceId: {
|
|
185
|
+
workspaceId: {
|
|
186
|
+
type: "string",
|
|
187
|
+
required: true,
|
|
188
|
+
description: "Workspace ID",
|
|
189
|
+
},
|
|
147
190
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
148
191
|
},
|
|
149
192
|
async execute(input, ctx) {
|
|
@@ -154,9 +197,17 @@ export default function clockify(rl) {
|
|
|
154
197
|
rl.registerAction("project.list", {
|
|
155
198
|
description: "List projects in a workspace",
|
|
156
199
|
inputSchema: {
|
|
157
|
-
workspaceId: {
|
|
200
|
+
workspaceId: {
|
|
201
|
+
type: "string",
|
|
202
|
+
required: true,
|
|
203
|
+
description: "Workspace ID",
|
|
204
|
+
},
|
|
158
205
|
name: { type: "string", required: false, description: "Filter by name" },
|
|
159
|
-
archived: {
|
|
206
|
+
archived: {
|
|
207
|
+
type: "boolean",
|
|
208
|
+
required: false,
|
|
209
|
+
description: "Include archived",
|
|
210
|
+
},
|
|
160
211
|
limit: { type: "number", required: false, description: "Max results" },
|
|
161
212
|
},
|
|
162
213
|
async execute(input, ctx) {
|
|
@@ -172,7 +223,11 @@ export default function clockify(rl) {
|
|
|
172
223
|
rl.registerAction("project.update", {
|
|
173
224
|
description: "Update a project",
|
|
174
225
|
inputSchema: {
|
|
175
|
-
workspaceId: {
|
|
226
|
+
workspaceId: {
|
|
227
|
+
type: "string",
|
|
228
|
+
required: true,
|
|
229
|
+
description: "Workspace ID",
|
|
230
|
+
},
|
|
176
231
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
177
232
|
name: { type: "string", required: false, description: "Name" },
|
|
178
233
|
clientId: { type: "string", required: false, description: "Client ID" },
|
|
@@ -190,7 +245,11 @@ export default function clockify(rl) {
|
|
|
190
245
|
rl.registerAction("project.delete", {
|
|
191
246
|
description: "Delete a project",
|
|
192
247
|
inputSchema: {
|
|
193
|
-
workspaceId: {
|
|
248
|
+
workspaceId: {
|
|
249
|
+
type: "string",
|
|
250
|
+
required: true,
|
|
251
|
+
description: "Workspace ID",
|
|
252
|
+
},
|
|
194
253
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
195
254
|
},
|
|
196
255
|
async execute(input, ctx) {
|
|
@@ -203,20 +262,34 @@ export default function clockify(rl) {
|
|
|
203
262
|
rl.registerAction("tag.create", {
|
|
204
263
|
description: "Create a tag",
|
|
205
264
|
inputSchema: {
|
|
206
|
-
workspaceId: {
|
|
265
|
+
workspaceId: {
|
|
266
|
+
type: "string",
|
|
267
|
+
required: true,
|
|
268
|
+
description: "Workspace ID",
|
|
269
|
+
},
|
|
207
270
|
name: { type: "string", required: true, description: "Tag name" },
|
|
208
271
|
},
|
|
209
272
|
async execute(input, ctx) {
|
|
210
273
|
const { workspaceId, name } = input;
|
|
211
|
-
return apiRequest(getKey(ctx), "POST", `workspaces/${workspaceId}/tags`, {
|
|
274
|
+
return apiRequest(getKey(ctx), "POST", `workspaces/${workspaceId}/tags`, {
|
|
275
|
+
name,
|
|
276
|
+
});
|
|
212
277
|
},
|
|
213
278
|
});
|
|
214
279
|
rl.registerAction("tag.list", {
|
|
215
280
|
description: "List tags in a workspace",
|
|
216
281
|
inputSchema: {
|
|
217
|
-
workspaceId: {
|
|
282
|
+
workspaceId: {
|
|
283
|
+
type: "string",
|
|
284
|
+
required: true,
|
|
285
|
+
description: "Workspace ID",
|
|
286
|
+
},
|
|
218
287
|
name: { type: "string", required: false, description: "Filter by name" },
|
|
219
|
-
archived: {
|
|
288
|
+
archived: {
|
|
289
|
+
type: "boolean",
|
|
290
|
+
required: false,
|
|
291
|
+
description: "Include archived",
|
|
292
|
+
},
|
|
220
293
|
limit: { type: "number", required: false, description: "Max results" },
|
|
221
294
|
},
|
|
222
295
|
async execute(input, ctx) {
|
|
@@ -232,7 +305,11 @@ export default function clockify(rl) {
|
|
|
232
305
|
rl.registerAction("tag.update", {
|
|
233
306
|
description: "Update a tag",
|
|
234
307
|
inputSchema: {
|
|
235
|
-
workspaceId: {
|
|
308
|
+
workspaceId: {
|
|
309
|
+
type: "string",
|
|
310
|
+
required: true,
|
|
311
|
+
description: "Workspace ID",
|
|
312
|
+
},
|
|
236
313
|
tagId: { type: "string", required: true, description: "Tag ID" },
|
|
237
314
|
name: { type: "string", required: false, description: "Name" },
|
|
238
315
|
archived: { type: "boolean", required: false, description: "Archived" },
|
|
@@ -245,7 +322,11 @@ export default function clockify(rl) {
|
|
|
245
322
|
rl.registerAction("tag.delete", {
|
|
246
323
|
description: "Delete a tag",
|
|
247
324
|
inputSchema: {
|
|
248
|
-
workspaceId: {
|
|
325
|
+
workspaceId: {
|
|
326
|
+
type: "string",
|
|
327
|
+
required: true,
|
|
328
|
+
description: "Workspace ID",
|
|
329
|
+
},
|
|
249
330
|
tagId: { type: "string", required: true, description: "Tag ID" },
|
|
250
331
|
},
|
|
251
332
|
async execute(input, ctx) {
|
|
@@ -258,12 +339,28 @@ export default function clockify(rl) {
|
|
|
258
339
|
rl.registerAction("task.create", {
|
|
259
340
|
description: "Create a task in a project",
|
|
260
341
|
inputSchema: {
|
|
261
|
-
workspaceId: {
|
|
342
|
+
workspaceId: {
|
|
343
|
+
type: "string",
|
|
344
|
+
required: true,
|
|
345
|
+
description: "Workspace ID",
|
|
346
|
+
},
|
|
262
347
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
263
348
|
name: { type: "string", required: true, description: "Task name" },
|
|
264
|
-
assigneeIds: {
|
|
265
|
-
|
|
266
|
-
|
|
349
|
+
assigneeIds: {
|
|
350
|
+
type: "array",
|
|
351
|
+
required: false,
|
|
352
|
+
description: "Assignee user IDs",
|
|
353
|
+
},
|
|
354
|
+
estimate: {
|
|
355
|
+
type: "string",
|
|
356
|
+
required: false,
|
|
357
|
+
description: "Estimate (HH:MM format)",
|
|
358
|
+
},
|
|
359
|
+
status: {
|
|
360
|
+
type: "string",
|
|
361
|
+
required: false,
|
|
362
|
+
description: "Status: ACTIVE or DONE",
|
|
363
|
+
},
|
|
267
364
|
},
|
|
268
365
|
async execute(input, ctx) {
|
|
269
366
|
const { workspaceId, projectId, estimate, ...body } = input;
|
|
@@ -277,7 +374,11 @@ export default function clockify(rl) {
|
|
|
277
374
|
rl.registerAction("task.get", {
|
|
278
375
|
description: "Get a task",
|
|
279
376
|
inputSchema: {
|
|
280
|
-
workspaceId: {
|
|
377
|
+
workspaceId: {
|
|
378
|
+
type: "string",
|
|
379
|
+
required: true,
|
|
380
|
+
description: "Workspace ID",
|
|
381
|
+
},
|
|
281
382
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
282
383
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
283
384
|
},
|
|
@@ -289,14 +390,23 @@ export default function clockify(rl) {
|
|
|
289
390
|
rl.registerAction("task.list", {
|
|
290
391
|
description: "List tasks in a project",
|
|
291
392
|
inputSchema: {
|
|
292
|
-
workspaceId: {
|
|
393
|
+
workspaceId: {
|
|
394
|
+
type: "string",
|
|
395
|
+
required: true,
|
|
396
|
+
description: "Workspace ID",
|
|
397
|
+
},
|
|
293
398
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
294
|
-
isActive: {
|
|
399
|
+
isActive: {
|
|
400
|
+
type: "boolean",
|
|
401
|
+
required: false,
|
|
402
|
+
description: "Filter active tasks",
|
|
403
|
+
},
|
|
295
404
|
name: { type: "string", required: false, description: "Filter by name" },
|
|
296
405
|
limit: { type: "number", required: false, description: "Max results" },
|
|
297
406
|
},
|
|
298
407
|
async execute(input, ctx) {
|
|
299
|
-
const { workspaceId, projectId, isActive, name, limit } = (input ??
|
|
408
|
+
const { workspaceId, projectId, isActive, name, limit } = (input ??
|
|
409
|
+
{});
|
|
300
410
|
const qs = {};
|
|
301
411
|
if (isActive !== undefined)
|
|
302
412
|
qs["is-active"] = isActive;
|
|
@@ -312,12 +422,24 @@ export default function clockify(rl) {
|
|
|
312
422
|
rl.registerAction("task.update", {
|
|
313
423
|
description: "Update a task",
|
|
314
424
|
inputSchema: {
|
|
315
|
-
workspaceId: {
|
|
425
|
+
workspaceId: {
|
|
426
|
+
type: "string",
|
|
427
|
+
required: true,
|
|
428
|
+
description: "Workspace ID",
|
|
429
|
+
},
|
|
316
430
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
317
431
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
318
432
|
name: { type: "string", required: false, description: "Name" },
|
|
319
|
-
assigneeIds: {
|
|
320
|
-
|
|
433
|
+
assigneeIds: {
|
|
434
|
+
type: "array",
|
|
435
|
+
required: false,
|
|
436
|
+
description: "Assignee IDs",
|
|
437
|
+
},
|
|
438
|
+
estimate: {
|
|
439
|
+
type: "string",
|
|
440
|
+
required: false,
|
|
441
|
+
description: "Estimate (HH:MM)",
|
|
442
|
+
},
|
|
321
443
|
status: { type: "string", required: false, description: "Status" },
|
|
322
444
|
},
|
|
323
445
|
async execute(input, ctx) {
|
|
@@ -332,7 +454,11 @@ export default function clockify(rl) {
|
|
|
332
454
|
rl.registerAction("task.delete", {
|
|
333
455
|
description: "Delete a task",
|
|
334
456
|
inputSchema: {
|
|
335
|
-
workspaceId: {
|
|
457
|
+
workspaceId: {
|
|
458
|
+
type: "string",
|
|
459
|
+
required: true,
|
|
460
|
+
description: "Workspace ID",
|
|
461
|
+
},
|
|
336
462
|
projectId: { type: "string", required: true, description: "Project ID" },
|
|
337
463
|
taskId: { type: "string", required: true, description: "Task ID" },
|
|
338
464
|
},
|
|
@@ -346,10 +472,26 @@ export default function clockify(rl) {
|
|
|
346
472
|
rl.registerAction("timeEntry.create", {
|
|
347
473
|
description: "Create a time entry",
|
|
348
474
|
inputSchema: {
|
|
349
|
-
workspaceId: {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
475
|
+
workspaceId: {
|
|
476
|
+
type: "string",
|
|
477
|
+
required: true,
|
|
478
|
+
description: "Workspace ID",
|
|
479
|
+
},
|
|
480
|
+
start: {
|
|
481
|
+
type: "string",
|
|
482
|
+
required: true,
|
|
483
|
+
description: "Start time (ISO 8601)",
|
|
484
|
+
},
|
|
485
|
+
end: {
|
|
486
|
+
type: "string",
|
|
487
|
+
required: false,
|
|
488
|
+
description: "End time (ISO 8601)",
|
|
489
|
+
},
|
|
490
|
+
description: {
|
|
491
|
+
type: "string",
|
|
492
|
+
required: false,
|
|
493
|
+
description: "Description",
|
|
494
|
+
},
|
|
353
495
|
projectId: { type: "string", required: false, description: "Project ID" },
|
|
354
496
|
taskId: { type: "string", required: false, description: "Task ID" },
|
|
355
497
|
tagIds: { type: "array", required: false, description: "Tag IDs" },
|
|
@@ -363,8 +505,16 @@ export default function clockify(rl) {
|
|
|
363
505
|
rl.registerAction("timeEntry.get", {
|
|
364
506
|
description: "Get a time entry",
|
|
365
507
|
inputSchema: {
|
|
366
|
-
workspaceId: {
|
|
367
|
-
|
|
508
|
+
workspaceId: {
|
|
509
|
+
type: "string",
|
|
510
|
+
required: true,
|
|
511
|
+
description: "Workspace ID",
|
|
512
|
+
},
|
|
513
|
+
timeEntryId: {
|
|
514
|
+
type: "string",
|
|
515
|
+
required: true,
|
|
516
|
+
description: "Time entry ID",
|
|
517
|
+
},
|
|
368
518
|
},
|
|
369
519
|
async execute(input, ctx) {
|
|
370
520
|
const { workspaceId, timeEntryId } = input;
|
|
@@ -374,11 +524,23 @@ export default function clockify(rl) {
|
|
|
374
524
|
rl.registerAction("timeEntry.update", {
|
|
375
525
|
description: "Update a time entry",
|
|
376
526
|
inputSchema: {
|
|
377
|
-
workspaceId: {
|
|
378
|
-
|
|
527
|
+
workspaceId: {
|
|
528
|
+
type: "string",
|
|
529
|
+
required: true,
|
|
530
|
+
description: "Workspace ID",
|
|
531
|
+
},
|
|
532
|
+
timeEntryId: {
|
|
533
|
+
type: "string",
|
|
534
|
+
required: true,
|
|
535
|
+
description: "Time entry ID",
|
|
536
|
+
},
|
|
379
537
|
start: { type: "string", required: false, description: "Start time" },
|
|
380
538
|
end: { type: "string", required: false, description: "End time" },
|
|
381
|
-
description: {
|
|
539
|
+
description: {
|
|
540
|
+
type: "string",
|
|
541
|
+
required: false,
|
|
542
|
+
description: "Description",
|
|
543
|
+
},
|
|
382
544
|
projectId: { type: "string", required: false, description: "Project ID" },
|
|
383
545
|
taskId: { type: "string", required: false, description: "Task ID" },
|
|
384
546
|
tagIds: { type: "array", required: false, description: "Tag IDs" },
|
|
@@ -398,8 +560,16 @@ export default function clockify(rl) {
|
|
|
398
560
|
rl.registerAction("timeEntry.delete", {
|
|
399
561
|
description: "Delete a time entry",
|
|
400
562
|
inputSchema: {
|
|
401
|
-
workspaceId: {
|
|
402
|
-
|
|
563
|
+
workspaceId: {
|
|
564
|
+
type: "string",
|
|
565
|
+
required: true,
|
|
566
|
+
description: "Workspace ID",
|
|
567
|
+
},
|
|
568
|
+
timeEntryId: {
|
|
569
|
+
type: "string",
|
|
570
|
+
required: true,
|
|
571
|
+
description: "Time entry ID",
|
|
572
|
+
},
|
|
403
573
|
},
|
|
404
574
|
async execute(input, ctx) {
|
|
405
575
|
const { workspaceId, timeEntryId } = input;
|
|
@@ -411,9 +581,21 @@ export default function clockify(rl) {
|
|
|
411
581
|
rl.registerAction("user.list", {
|
|
412
582
|
description: "List users in a workspace",
|
|
413
583
|
inputSchema: {
|
|
414
|
-
workspaceId: {
|
|
415
|
-
|
|
416
|
-
|
|
584
|
+
workspaceId: {
|
|
585
|
+
type: "string",
|
|
586
|
+
required: true,
|
|
587
|
+
description: "Workspace ID",
|
|
588
|
+
},
|
|
589
|
+
email: {
|
|
590
|
+
type: "string",
|
|
591
|
+
required: false,
|
|
592
|
+
description: "Filter by email",
|
|
593
|
+
},
|
|
594
|
+
status: {
|
|
595
|
+
type: "string",
|
|
596
|
+
required: false,
|
|
597
|
+
description: "Filter by status: ACTIVE, PENDING, DECLINED",
|
|
598
|
+
},
|
|
417
599
|
limit: { type: "number", required: false, description: "Max results" },
|
|
418
600
|
},
|
|
419
601
|
async execute(input, ctx) {
|
|
@@ -9,9 +9,15 @@ async function apiRequest(token, method, endpoint, body, qs) {
|
|
|
9
9
|
}
|
|
10
10
|
const opts = {
|
|
11
11
|
method,
|
|
12
|
-
headers: {
|
|
12
|
+
headers: {
|
|
13
|
+
"Content-Type": "application/json",
|
|
14
|
+
Authorization: `Bearer ${token}`,
|
|
15
|
+
},
|
|
13
16
|
};
|
|
14
|
-
if (body &&
|
|
17
|
+
if (body &&
|
|
18
|
+
Object.keys(body).length > 0 &&
|
|
19
|
+
method !== "GET" &&
|
|
20
|
+
method !== "DELETE") {
|
|
15
21
|
opts.body = JSON.stringify(body);
|
|
16
22
|
}
|
|
17
23
|
const res = await fetch(url.toString(), opts);
|
|
@@ -39,7 +45,11 @@ export default function cloudflare(rl) {
|
|
|
39
45
|
description: "Get a zone-level origin certificate",
|
|
40
46
|
inputSchema: {
|
|
41
47
|
zoneId: { type: "string", required: true, description: "Zone ID" },
|
|
42
|
-
certificateId: {
|
|
48
|
+
certificateId: {
|
|
49
|
+
type: "string",
|
|
50
|
+
required: true,
|
|
51
|
+
description: "Certificate ID",
|
|
52
|
+
},
|
|
43
53
|
},
|
|
44
54
|
async execute(input, ctx) {
|
|
45
55
|
const { zoneId, certificateId } = input;
|
|
@@ -66,8 +76,16 @@ export default function cloudflare(rl) {
|
|
|
66
76
|
description: "Upload a zone-level origin certificate",
|
|
67
77
|
inputSchema: {
|
|
68
78
|
zoneId: { type: "string", required: true, description: "Zone ID" },
|
|
69
|
-
certificate: {
|
|
70
|
-
|
|
79
|
+
certificate: {
|
|
80
|
+
type: "string",
|
|
81
|
+
required: true,
|
|
82
|
+
description: "PEM certificate",
|
|
83
|
+
},
|
|
84
|
+
privateKey: {
|
|
85
|
+
type: "string",
|
|
86
|
+
required: true,
|
|
87
|
+
description: "PEM private key",
|
|
88
|
+
},
|
|
71
89
|
},
|
|
72
90
|
async execute(input, ctx) {
|
|
73
91
|
const { zoneId, certificate, privateKey } = input;
|
|
@@ -82,7 +100,11 @@ export default function cloudflare(rl) {
|
|
|
82
100
|
description: "Delete a zone-level origin certificate",
|
|
83
101
|
inputSchema: {
|
|
84
102
|
zoneId: { type: "string", required: true, description: "Zone ID" },
|
|
85
|
-
certificateId: {
|
|
103
|
+
certificateId: {
|
|
104
|
+
type: "string",
|
|
105
|
+
required: true,
|
|
106
|
+
description: "Certificate ID",
|
|
107
|
+
},
|
|
86
108
|
},
|
|
87
109
|
async execute(input, ctx) {
|
|
88
110
|
const { zoneId, certificateId } = input;
|
|
@@ -42,8 +42,16 @@ export default function cockpit(rl) {
|
|
|
42
42
|
rl.registerAction("collection.create", {
|
|
43
43
|
description: "Create an entry in a collection",
|
|
44
44
|
inputSchema: {
|
|
45
|
-
collection: {
|
|
46
|
-
|
|
45
|
+
collection: {
|
|
46
|
+
type: "string",
|
|
47
|
+
required: true,
|
|
48
|
+
description: "Collection name",
|
|
49
|
+
},
|
|
50
|
+
data: {
|
|
51
|
+
type: "object",
|
|
52
|
+
required: true,
|
|
53
|
+
description: "Entry data as key-value pairs",
|
|
54
|
+
},
|
|
47
55
|
},
|
|
48
56
|
async execute(input, ctx) {
|
|
49
57
|
const { collection, data } = input;
|
|
@@ -54,17 +62,37 @@ export default function cockpit(rl) {
|
|
|
54
62
|
rl.registerAction("collection.list", {
|
|
55
63
|
description: "List entries in a collection",
|
|
56
64
|
inputSchema: {
|
|
57
|
-
collection: {
|
|
65
|
+
collection: {
|
|
66
|
+
type: "string",
|
|
67
|
+
required: true,
|
|
68
|
+
description: "Collection name",
|
|
69
|
+
},
|
|
58
70
|
filter: { type: "object", required: false, description: "Filter object" },
|
|
59
|
-
fields: {
|
|
60
|
-
|
|
71
|
+
fields: {
|
|
72
|
+
type: "array",
|
|
73
|
+
required: false,
|
|
74
|
+
description: "Array of field names to return",
|
|
75
|
+
},
|
|
76
|
+
sort: {
|
|
77
|
+
type: "object",
|
|
78
|
+
required: false,
|
|
79
|
+
description: "Sort object (e.g. {fieldName: 1})",
|
|
80
|
+
},
|
|
61
81
|
limit: { type: "number", required: false, description: "Max results" },
|
|
62
82
|
skip: { type: "number", required: false, description: "Number to skip" },
|
|
63
|
-
populate: {
|
|
64
|
-
|
|
83
|
+
populate: {
|
|
84
|
+
type: "boolean",
|
|
85
|
+
required: false,
|
|
86
|
+
description: "Populate linked entries",
|
|
87
|
+
},
|
|
88
|
+
language: {
|
|
89
|
+
type: "string",
|
|
90
|
+
required: false,
|
|
91
|
+
description: "Language code",
|
|
92
|
+
},
|
|
65
93
|
},
|
|
66
94
|
async execute(input, ctx) {
|
|
67
|
-
const { collection, filter, fields, sort, limit, skip, populate, language } = (input ?? {});
|
|
95
|
+
const { collection, filter, fields, sort, limit, skip, populate, language, } = (input ?? {});
|
|
68
96
|
const { baseUrl, token } = getConn(ctx);
|
|
69
97
|
const body = { simple: true };
|
|
70
98
|
if (filter)
|
|
@@ -91,7 +119,11 @@ export default function cockpit(rl) {
|
|
|
91
119
|
rl.registerAction("collection.update", {
|
|
92
120
|
description: "Update an entry in a collection",
|
|
93
121
|
inputSchema: {
|
|
94
|
-
collection: {
|
|
122
|
+
collection: {
|
|
123
|
+
type: "string",
|
|
124
|
+
required: true,
|
|
125
|
+
description: "Collection name",
|
|
126
|
+
},
|
|
95
127
|
id: { type: "string", required: true, description: "Entry _id" },
|
|
96
128
|
data: { type: "object", required: true, description: "Fields to update" },
|
|
97
129
|
},
|
|
@@ -108,19 +140,29 @@ export default function cockpit(rl) {
|
|
|
108
140
|
description: "Submit a form",
|
|
109
141
|
inputSchema: {
|
|
110
142
|
form: { type: "string", required: true, description: "Form name" },
|
|
111
|
-
data: {
|
|
143
|
+
data: {
|
|
144
|
+
type: "object",
|
|
145
|
+
required: true,
|
|
146
|
+
description: "Form data as key-value pairs",
|
|
147
|
+
},
|
|
112
148
|
},
|
|
113
149
|
async execute(input, ctx) {
|
|
114
150
|
const { form, data } = input;
|
|
115
151
|
const { baseUrl, token } = getConn(ctx);
|
|
116
|
-
return apiRequest(baseUrl, token, "POST", `/forms/submit/${form}`, {
|
|
152
|
+
return apiRequest(baseUrl, token, "POST", `/forms/submit/${form}`, {
|
|
153
|
+
form: data,
|
|
154
|
+
});
|
|
117
155
|
},
|
|
118
156
|
});
|
|
119
157
|
// ── Singleton ───────────────────────────────────────
|
|
120
158
|
rl.registerAction("singleton.get", {
|
|
121
159
|
description: "Get a singleton's data",
|
|
122
160
|
inputSchema: {
|
|
123
|
-
singleton: {
|
|
161
|
+
singleton: {
|
|
162
|
+
type: "string",
|
|
163
|
+
required: true,
|
|
164
|
+
description: "Singleton name",
|
|
165
|
+
},
|
|
124
166
|
},
|
|
125
167
|
async execute(input, ctx) {
|
|
126
168
|
const { singleton } = input;
|