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
|
@@ -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);
|
|
@@ -59,9 +65,21 @@ export default function coda(rl) {
|
|
|
59
65
|
inputSchema: {
|
|
60
66
|
docId: { type: "string", required: true, description: "Doc ID" },
|
|
61
67
|
tableId: { type: "string", required: true, description: "Table ID" },
|
|
62
|
-
cells: {
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
cells: {
|
|
69
|
+
type: "object",
|
|
70
|
+
required: true,
|
|
71
|
+
description: "Column-value pairs",
|
|
72
|
+
},
|
|
73
|
+
keyColumns: {
|
|
74
|
+
type: "array",
|
|
75
|
+
required: false,
|
|
76
|
+
description: "Key columns for upsert",
|
|
77
|
+
},
|
|
78
|
+
disableParsing: {
|
|
79
|
+
type: "boolean",
|
|
80
|
+
required: false,
|
|
81
|
+
description: "Disable value parsing",
|
|
82
|
+
},
|
|
65
83
|
},
|
|
66
84
|
async execute(input, ctx) {
|
|
67
85
|
const { docId, tableId, cells, keyColumns, disableParsing } = input;
|
|
@@ -81,11 +99,19 @@ export default function coda(rl) {
|
|
|
81
99
|
docId: { type: "string", required: true, description: "Doc ID" },
|
|
82
100
|
tableId: { type: "string", required: true, description: "Table ID" },
|
|
83
101
|
rowId: { type: "string", required: true, description: "Row ID or name" },
|
|
84
|
-
useColumnNames: {
|
|
85
|
-
|
|
102
|
+
useColumnNames: {
|
|
103
|
+
type: "boolean",
|
|
104
|
+
required: false,
|
|
105
|
+
description: "Use column names (default: true)",
|
|
106
|
+
},
|
|
107
|
+
valueFormat: {
|
|
108
|
+
type: "string",
|
|
109
|
+
required: false,
|
|
110
|
+
description: "Value format: simple, simpleWithArrays, rich",
|
|
111
|
+
},
|
|
86
112
|
},
|
|
87
113
|
async execute(input, ctx) {
|
|
88
|
-
const { docId, tableId, rowId, useColumnNames = true, valueFormat } = input;
|
|
114
|
+
const { docId, tableId, rowId, useColumnNames = true, valueFormat, } = input;
|
|
89
115
|
const qs = { useColumnNames };
|
|
90
116
|
if (valueFormat)
|
|
91
117
|
qs.valueFormat = valueFormat;
|
|
@@ -100,13 +126,25 @@ export default function coda(rl) {
|
|
|
100
126
|
tableId: { type: "string", required: true, description: "Table ID" },
|
|
101
127
|
query: { type: "string", required: false, description: "Search query" },
|
|
102
128
|
sortBy: { type: "string", required: false, description: "Sort column" },
|
|
103
|
-
useColumnNames: {
|
|
104
|
-
|
|
105
|
-
|
|
129
|
+
useColumnNames: {
|
|
130
|
+
type: "boolean",
|
|
131
|
+
required: false,
|
|
132
|
+
description: "Use column names (default: true)",
|
|
133
|
+
},
|
|
134
|
+
valueFormat: {
|
|
135
|
+
type: "string",
|
|
136
|
+
required: false,
|
|
137
|
+
description: "Value format",
|
|
138
|
+
},
|
|
139
|
+
visibleOnly: {
|
|
140
|
+
type: "boolean",
|
|
141
|
+
required: false,
|
|
142
|
+
description: "Only visible rows",
|
|
143
|
+
},
|
|
106
144
|
limit: { type: "number", required: false, description: "Max results" },
|
|
107
145
|
},
|
|
108
146
|
async execute(input, ctx) {
|
|
109
|
-
const { docId, tableId, query, sortBy, useColumnNames = true, valueFormat, visibleOnly, limit } = (input ?? {});
|
|
147
|
+
const { docId, tableId, query, sortBy, useColumnNames = true, valueFormat, visibleOnly, limit, } = (input ?? {});
|
|
110
148
|
const qs = { useColumnNames };
|
|
111
149
|
if (query)
|
|
112
150
|
qs.query = query;
|
|
@@ -141,7 +179,11 @@ export default function coda(rl) {
|
|
|
141
179
|
docId: { type: "string", required: true, description: "Doc ID" },
|
|
142
180
|
tableId: { type: "string", required: true, description: "Table ID" },
|
|
143
181
|
rowId: { type: "string", required: true, description: "Row ID" },
|
|
144
|
-
columnId: {
|
|
182
|
+
columnId: {
|
|
183
|
+
type: "string",
|
|
184
|
+
required: true,
|
|
185
|
+
description: "Button column ID",
|
|
186
|
+
},
|
|
145
187
|
},
|
|
146
188
|
async execute(input, ctx) {
|
|
147
189
|
const { docId, tableId, rowId, columnId } = input;
|
|
@@ -249,12 +291,20 @@ export default function coda(rl) {
|
|
|
249
291
|
viewId: { type: "string", required: true, description: "View ID" },
|
|
250
292
|
query: { type: "string", required: false, description: "Search query" },
|
|
251
293
|
sortBy: { type: "string", required: false, description: "Sort column" },
|
|
252
|
-
useColumnNames: {
|
|
253
|
-
|
|
294
|
+
useColumnNames: {
|
|
295
|
+
type: "boolean",
|
|
296
|
+
required: false,
|
|
297
|
+
description: "Use column names (default: true)",
|
|
298
|
+
},
|
|
299
|
+
valueFormat: {
|
|
300
|
+
type: "string",
|
|
301
|
+
required: false,
|
|
302
|
+
description: "Value format",
|
|
303
|
+
},
|
|
254
304
|
limit: { type: "number", required: false, description: "Max results" },
|
|
255
305
|
},
|
|
256
306
|
async execute(input, ctx) {
|
|
257
|
-
const { docId, viewId, query, sortBy, useColumnNames = true, valueFormat, limit } = (input ?? {});
|
|
307
|
+
const { docId, viewId, query, sortBy, useColumnNames = true, valueFormat, limit, } = (input ?? {});
|
|
258
308
|
const qs = { useColumnNames };
|
|
259
309
|
if (query)
|
|
260
310
|
qs.query = query;
|
|
@@ -287,8 +337,16 @@ export default function coda(rl) {
|
|
|
287
337
|
docId: { type: "string", required: true, description: "Doc ID" },
|
|
288
338
|
viewId: { type: "string", required: true, description: "View ID" },
|
|
289
339
|
rowId: { type: "string", required: true, description: "Row ID" },
|
|
290
|
-
cells: {
|
|
291
|
-
|
|
340
|
+
cells: {
|
|
341
|
+
type: "object",
|
|
342
|
+
required: true,
|
|
343
|
+
description: "Column-value pairs to update",
|
|
344
|
+
},
|
|
345
|
+
disableParsing: {
|
|
346
|
+
type: "boolean",
|
|
347
|
+
required: false,
|
|
348
|
+
description: "Disable value parsing",
|
|
349
|
+
},
|
|
292
350
|
},
|
|
293
351
|
async execute(input, ctx) {
|
|
294
352
|
const { docId, viewId, rowId, cells, disableParsing } = input;
|
|
@@ -305,7 +363,11 @@ export default function coda(rl) {
|
|
|
305
363
|
docId: { type: "string", required: true, description: "Doc ID" },
|
|
306
364
|
viewId: { type: "string", required: true, description: "View ID" },
|
|
307
365
|
rowId: { type: "string", required: true, description: "Row ID" },
|
|
308
|
-
columnId: {
|
|
366
|
+
columnId: {
|
|
367
|
+
type: "string",
|
|
368
|
+
required: true,
|
|
369
|
+
description: "Button column ID",
|
|
370
|
+
},
|
|
309
371
|
},
|
|
310
372
|
async execute(input, ctx) {
|
|
311
373
|
const { docId, viewId, rowId, columnId } = input;
|
|
@@ -33,16 +33,44 @@ export default function coingecko(rl) {
|
|
|
33
33
|
rl.registerAction("coin.get", {
|
|
34
34
|
description: "Get detailed coin data by ID or contract address",
|
|
35
35
|
inputSchema: {
|
|
36
|
-
coinId: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
coinId: {
|
|
37
|
+
type: "string",
|
|
38
|
+
required: false,
|
|
39
|
+
description: "Coin ID (e.g. bitcoin)",
|
|
40
|
+
},
|
|
41
|
+
platformId: {
|
|
42
|
+
type: "string",
|
|
43
|
+
required: false,
|
|
44
|
+
description: "Platform ID for contract lookup",
|
|
45
|
+
},
|
|
46
|
+
contractAddress: {
|
|
47
|
+
type: "string",
|
|
48
|
+
required: false,
|
|
49
|
+
description: "Contract address",
|
|
50
|
+
},
|
|
51
|
+
communityData: {
|
|
52
|
+
type: "boolean",
|
|
53
|
+
required: false,
|
|
54
|
+
description: "Include community data",
|
|
55
|
+
},
|
|
56
|
+
developerData: {
|
|
57
|
+
type: "boolean",
|
|
58
|
+
required: false,
|
|
59
|
+
description: "Include developer data",
|
|
60
|
+
},
|
|
61
|
+
marketData: {
|
|
62
|
+
type: "boolean",
|
|
63
|
+
required: false,
|
|
64
|
+
description: "Include market data",
|
|
65
|
+
},
|
|
66
|
+
tickers: {
|
|
67
|
+
type: "boolean",
|
|
68
|
+
required: false,
|
|
69
|
+
description: "Include tickers",
|
|
70
|
+
},
|
|
43
71
|
},
|
|
44
72
|
async execute(input, ctx) {
|
|
45
|
-
const { coinId, platformId, contractAddress, communityData, developerData, marketData, tickers } = (input ?? {});
|
|
73
|
+
const { coinId, platformId, contractAddress, communityData, developerData, marketData, tickers, } = (input ?? {});
|
|
46
74
|
const qs = {
|
|
47
75
|
community_data: communityData ?? false,
|
|
48
76
|
developer_data: developerData ?? false,
|
|
@@ -73,12 +101,32 @@ export default function coingecko(rl) {
|
|
|
73
101
|
rl.registerAction("coin.market", {
|
|
74
102
|
description: "Get coin market data (price, mcap, volume) for multiple coins",
|
|
75
103
|
inputSchema: {
|
|
76
|
-
vsCurrency: {
|
|
77
|
-
|
|
78
|
-
|
|
104
|
+
vsCurrency: {
|
|
105
|
+
type: "string",
|
|
106
|
+
required: true,
|
|
107
|
+
description: "Quote currency (e.g. usd)",
|
|
108
|
+
},
|
|
109
|
+
ids: {
|
|
110
|
+
type: "string",
|
|
111
|
+
required: false,
|
|
112
|
+
description: "Comma-separated coin IDs",
|
|
113
|
+
},
|
|
114
|
+
category: {
|
|
115
|
+
type: "string",
|
|
116
|
+
required: false,
|
|
117
|
+
description: "Category filter",
|
|
118
|
+
},
|
|
79
119
|
order: { type: "string", required: false, description: "Sort order" },
|
|
80
|
-
priceChangePercentage: {
|
|
81
|
-
|
|
120
|
+
priceChangePercentage: {
|
|
121
|
+
type: "string",
|
|
122
|
+
required: false,
|
|
123
|
+
description: "Comma-separated periods (1h,24h,7d,14d,30d,200d,1y)",
|
|
124
|
+
},
|
|
125
|
+
limit: {
|
|
126
|
+
type: "number",
|
|
127
|
+
required: false,
|
|
128
|
+
description: "Max results (default: 100)",
|
|
129
|
+
},
|
|
82
130
|
},
|
|
83
131
|
async execute(input, ctx) {
|
|
84
132
|
const { vsCurrency, ids, category, order, priceChangePercentage, limit } = (input ?? {});
|
|
@@ -99,14 +147,34 @@ export default function coingecko(rl) {
|
|
|
99
147
|
rl.registerAction("coin.price", {
|
|
100
148
|
description: "Get simple price for coins",
|
|
101
149
|
inputSchema: {
|
|
102
|
-
ids: {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
150
|
+
ids: {
|
|
151
|
+
type: "string",
|
|
152
|
+
required: true,
|
|
153
|
+
description: "Comma-separated coin IDs",
|
|
154
|
+
},
|
|
155
|
+
vsCurrencies: {
|
|
156
|
+
type: "string",
|
|
157
|
+
required: true,
|
|
158
|
+
description: "Comma-separated quote currencies",
|
|
159
|
+
},
|
|
160
|
+
includeMarketCap: {
|
|
161
|
+
type: "boolean",
|
|
162
|
+
required: false,
|
|
163
|
+
description: "Include market cap",
|
|
164
|
+
},
|
|
165
|
+
include24hrVol: {
|
|
166
|
+
type: "boolean",
|
|
167
|
+
required: false,
|
|
168
|
+
description: "Include 24h volume",
|
|
169
|
+
},
|
|
170
|
+
include24hrChange: {
|
|
171
|
+
type: "boolean",
|
|
172
|
+
required: false,
|
|
173
|
+
description: "Include 24h change",
|
|
174
|
+
},
|
|
107
175
|
},
|
|
108
176
|
async execute(input, ctx) {
|
|
109
|
-
const { ids, vsCurrencies, includeMarketCap, include24hrVol, include24hrChange } = (input ?? {});
|
|
177
|
+
const { ids, vsCurrencies, includeMarketCap, include24hrVol, include24hrChange, } = (input ?? {});
|
|
110
178
|
const qs = {
|
|
111
179
|
ids,
|
|
112
180
|
vs_currencies: vsCurrencies,
|
|
@@ -123,9 +191,21 @@ export default function coingecko(rl) {
|
|
|
123
191
|
rl.registerAction("coin.tokenPrice", {
|
|
124
192
|
description: "Get token price by contract address",
|
|
125
193
|
inputSchema: {
|
|
126
|
-
platformId: {
|
|
127
|
-
|
|
128
|
-
|
|
194
|
+
platformId: {
|
|
195
|
+
type: "string",
|
|
196
|
+
required: true,
|
|
197
|
+
description: "Platform ID (e.g. ethereum)",
|
|
198
|
+
},
|
|
199
|
+
contractAddresses: {
|
|
200
|
+
type: "string",
|
|
201
|
+
required: true,
|
|
202
|
+
description: "Comma-separated contract addresses",
|
|
203
|
+
},
|
|
204
|
+
vsCurrencies: {
|
|
205
|
+
type: "string",
|
|
206
|
+
required: true,
|
|
207
|
+
description: "Comma-separated quote currencies",
|
|
208
|
+
},
|
|
129
209
|
},
|
|
130
210
|
async execute(input, ctx) {
|
|
131
211
|
const { platformId, contractAddresses, vsCurrencies } = input;
|
|
@@ -139,7 +219,11 @@ export default function coingecko(rl) {
|
|
|
139
219
|
description: "Get tickers for a coin",
|
|
140
220
|
inputSchema: {
|
|
141
221
|
coinId: { type: "string", required: true, description: "Coin ID" },
|
|
142
|
-
exchangeIds: {
|
|
222
|
+
exchangeIds: {
|
|
223
|
+
type: "string",
|
|
224
|
+
required: false,
|
|
225
|
+
description: "Comma-separated exchange IDs",
|
|
226
|
+
},
|
|
143
227
|
limit: { type: "number", required: false, description: "Max results" },
|
|
144
228
|
},
|
|
145
229
|
async execute(input, ctx) {
|
|
@@ -158,8 +242,16 @@ export default function coingecko(rl) {
|
|
|
158
242
|
description: "Get historical data for a coin on a specific date",
|
|
159
243
|
inputSchema: {
|
|
160
244
|
coinId: { type: "string", required: true, description: "Coin ID" },
|
|
161
|
-
date: {
|
|
162
|
-
|
|
245
|
+
date: {
|
|
246
|
+
type: "string",
|
|
247
|
+
required: true,
|
|
248
|
+
description: "Date (DD-MM-YYYY format)",
|
|
249
|
+
},
|
|
250
|
+
localization: {
|
|
251
|
+
type: "boolean",
|
|
252
|
+
required: false,
|
|
253
|
+
description: "Include localized languages",
|
|
254
|
+
},
|
|
163
255
|
},
|
|
164
256
|
async execute(input, ctx) {
|
|
165
257
|
const { coinId, date, localization } = input;
|
|
@@ -173,10 +265,26 @@ export default function coingecko(rl) {
|
|
|
173
265
|
description: "Get price, market cap, and volume chart data",
|
|
174
266
|
inputSchema: {
|
|
175
267
|
coinId: { type: "string", required: false, description: "Coin ID" },
|
|
176
|
-
platformId: {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
268
|
+
platformId: {
|
|
269
|
+
type: "string",
|
|
270
|
+
required: false,
|
|
271
|
+
description: "Platform ID (for contract)",
|
|
272
|
+
},
|
|
273
|
+
contractAddress: {
|
|
274
|
+
type: "string",
|
|
275
|
+
required: false,
|
|
276
|
+
description: "Contract address",
|
|
277
|
+
},
|
|
278
|
+
vsCurrency: {
|
|
279
|
+
type: "string",
|
|
280
|
+
required: true,
|
|
281
|
+
description: "Quote currency",
|
|
282
|
+
},
|
|
283
|
+
days: {
|
|
284
|
+
type: "string",
|
|
285
|
+
required: true,
|
|
286
|
+
description: "Number of days (1, 7, 14, 30, 90, 180, 365, max)",
|
|
287
|
+
},
|
|
180
288
|
},
|
|
181
289
|
async execute(input, ctx) {
|
|
182
290
|
const { coinId, platformId, contractAddress, vsCurrency, days } = input;
|
|
@@ -202,8 +310,16 @@ export default function coingecko(rl) {
|
|
|
202
310
|
description: "Get OHLC candlestick data",
|
|
203
311
|
inputSchema: {
|
|
204
312
|
coinId: { type: "string", required: true, description: "Coin ID" },
|
|
205
|
-
vsCurrency: {
|
|
206
|
-
|
|
313
|
+
vsCurrency: {
|
|
314
|
+
type: "string",
|
|
315
|
+
required: true,
|
|
316
|
+
description: "Quote currency",
|
|
317
|
+
},
|
|
318
|
+
days: {
|
|
319
|
+
type: "string",
|
|
320
|
+
required: true,
|
|
321
|
+
description: "Number of days (1, 7, 14, 30, 90, 180, 365, max)",
|
|
322
|
+
},
|
|
207
323
|
},
|
|
208
324
|
async execute(input, ctx) {
|
|
209
325
|
const { coinId, vsCurrency, days } = input;
|
|
@@ -224,8 +340,16 @@ export default function coingecko(rl) {
|
|
|
224
340
|
rl.registerAction("event.list", {
|
|
225
341
|
description: "List crypto events",
|
|
226
342
|
inputSchema: {
|
|
227
|
-
countryCode: {
|
|
228
|
-
|
|
343
|
+
countryCode: {
|
|
344
|
+
type: "string",
|
|
345
|
+
required: false,
|
|
346
|
+
description: "Country code filter",
|
|
347
|
+
},
|
|
348
|
+
type: {
|
|
349
|
+
type: "string",
|
|
350
|
+
required: false,
|
|
351
|
+
description: "Event type filter",
|
|
352
|
+
},
|
|
229
353
|
limit: { type: "number", required: false, description: "Max results" },
|
|
230
354
|
},
|
|
231
355
|
async execute(input, ctx) {
|
|
@@ -7,7 +7,9 @@ async function apiRequest(host, token, endpoint, qs) {
|
|
|
7
7
|
url.searchParams.set(k, String(v));
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
const res = await fetch(url.toString(), {
|
|
10
|
+
const res = await fetch(url.toString(), {
|
|
11
|
+
headers: { Accept: "application/json" },
|
|
12
|
+
});
|
|
11
13
|
if (!res.ok)
|
|
12
14
|
throw new Error(`Contentful API error ${res.status}: ${await res.text()}`);
|
|
13
15
|
return res.json();
|
|
@@ -17,7 +19,11 @@ async function paginateAll(host, token, endpoint, qs, limit) {
|
|
|
17
19
|
let skip = 0;
|
|
18
20
|
const size = 100;
|
|
19
21
|
while (true) {
|
|
20
|
-
const data = (await apiRequest(host, token, endpoint, {
|
|
22
|
+
const data = (await apiRequest(host, token, endpoint, {
|
|
23
|
+
...qs,
|
|
24
|
+
skip,
|
|
25
|
+
limit: size,
|
|
26
|
+
}));
|
|
21
27
|
const items = data.items ?? [];
|
|
22
28
|
results.push(...items);
|
|
23
29
|
if (limit && results.length >= limit)
|
|
@@ -33,7 +39,9 @@ function getConn(ctx) {
|
|
|
33
39
|
const isPreview = cfg.source === "preview";
|
|
34
40
|
return {
|
|
35
41
|
host: isPreview ? "preview.contentful.com" : "cdn.contentful.com",
|
|
36
|
-
token: (isPreview
|
|
42
|
+
token: (isPreview
|
|
43
|
+
? cfg.previewAccessToken
|
|
44
|
+
: cfg.deliveryAccessToken),
|
|
37
45
|
spaceId: cfg.spaceId,
|
|
38
46
|
};
|
|
39
47
|
}
|
|
@@ -41,10 +49,30 @@ export default function contentful(rl) {
|
|
|
41
49
|
rl.setName("contentful");
|
|
42
50
|
rl.setVersion("0.1.0");
|
|
43
51
|
rl.setConnectionSchema({
|
|
44
|
-
spaceId: {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
spaceId: {
|
|
53
|
+
type: "string",
|
|
54
|
+
required: true,
|
|
55
|
+
description: "Contentful Space ID",
|
|
56
|
+
env: "CONTENTFUL_SPACE_ID",
|
|
57
|
+
},
|
|
58
|
+
deliveryAccessToken: {
|
|
59
|
+
type: "string",
|
|
60
|
+
required: true,
|
|
61
|
+
description: "Content Delivery API access token",
|
|
62
|
+
env: "CONTENTFUL_DELIVERY_TOKEN",
|
|
63
|
+
},
|
|
64
|
+
previewAccessToken: {
|
|
65
|
+
type: "string",
|
|
66
|
+
required: false,
|
|
67
|
+
description: "Content Preview API access token",
|
|
68
|
+
env: "CONTENTFUL_PREVIEW_TOKEN",
|
|
69
|
+
},
|
|
70
|
+
source: {
|
|
71
|
+
type: "string",
|
|
72
|
+
required: false,
|
|
73
|
+
description: "'delivery' (default) or 'preview'",
|
|
74
|
+
default: "delivery",
|
|
75
|
+
},
|
|
48
76
|
});
|
|
49
77
|
// ── Space ───────────────────────────────────────────
|
|
50
78
|
rl.registerAction("space.get", {
|
|
@@ -58,8 +86,16 @@ export default function contentful(rl) {
|
|
|
58
86
|
rl.registerAction("contentType.get", {
|
|
59
87
|
description: "Get a content type",
|
|
60
88
|
inputSchema: {
|
|
61
|
-
environmentId: {
|
|
62
|
-
|
|
89
|
+
environmentId: {
|
|
90
|
+
type: "string",
|
|
91
|
+
required: true,
|
|
92
|
+
description: "Environment ID (e.g. master)",
|
|
93
|
+
},
|
|
94
|
+
contentTypeId: {
|
|
95
|
+
type: "string",
|
|
96
|
+
required: true,
|
|
97
|
+
description: "Content type ID",
|
|
98
|
+
},
|
|
63
99
|
},
|
|
64
100
|
async execute(input, ctx) {
|
|
65
101
|
const { environmentId, contentTypeId } = input;
|
|
@@ -71,7 +107,11 @@ export default function contentful(rl) {
|
|
|
71
107
|
rl.registerAction("entry.get", {
|
|
72
108
|
description: "Get an entry by ID",
|
|
73
109
|
inputSchema: {
|
|
74
|
-
environmentId: {
|
|
110
|
+
environmentId: {
|
|
111
|
+
type: "string",
|
|
112
|
+
required: true,
|
|
113
|
+
description: "Environment ID",
|
|
114
|
+
},
|
|
75
115
|
entryId: { type: "string", required: true, description: "Entry ID" },
|
|
76
116
|
},
|
|
77
117
|
async execute(input, ctx) {
|
|
@@ -83,10 +123,26 @@ export default function contentful(rl) {
|
|
|
83
123
|
rl.registerAction("entry.list", {
|
|
84
124
|
description: "List entries",
|
|
85
125
|
inputSchema: {
|
|
86
|
-
environmentId: {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
126
|
+
environmentId: {
|
|
127
|
+
type: "string",
|
|
128
|
+
required: true,
|
|
129
|
+
description: "Environment ID",
|
|
130
|
+
},
|
|
131
|
+
contentType: {
|
|
132
|
+
type: "string",
|
|
133
|
+
required: false,
|
|
134
|
+
description: "Filter by content type ID",
|
|
135
|
+
},
|
|
136
|
+
query: {
|
|
137
|
+
type: "string",
|
|
138
|
+
required: false,
|
|
139
|
+
description: "Full-text search query",
|
|
140
|
+
},
|
|
141
|
+
select: {
|
|
142
|
+
type: "string",
|
|
143
|
+
required: false,
|
|
144
|
+
description: "Comma-separated fields to select",
|
|
145
|
+
},
|
|
90
146
|
order: { type: "string", required: false, description: "Order by field" },
|
|
91
147
|
limit: { type: "number", required: false, description: "Max results" },
|
|
92
148
|
},
|
|
@@ -109,7 +165,11 @@ export default function contentful(rl) {
|
|
|
109
165
|
rl.registerAction("asset.get", {
|
|
110
166
|
description: "Get an asset by ID",
|
|
111
167
|
inputSchema: {
|
|
112
|
-
environmentId: {
|
|
168
|
+
environmentId: {
|
|
169
|
+
type: "string",
|
|
170
|
+
required: true,
|
|
171
|
+
description: "Environment ID",
|
|
172
|
+
},
|
|
113
173
|
assetId: { type: "string", required: true, description: "Asset ID" },
|
|
114
174
|
},
|
|
115
175
|
async execute(input, ctx) {
|
|
@@ -121,7 +181,11 @@ export default function contentful(rl) {
|
|
|
121
181
|
rl.registerAction("asset.list", {
|
|
122
182
|
description: "List assets",
|
|
123
183
|
inputSchema: {
|
|
124
|
-
environmentId: {
|
|
184
|
+
environmentId: {
|
|
185
|
+
type: "string",
|
|
186
|
+
required: true,
|
|
187
|
+
description: "Environment ID",
|
|
188
|
+
},
|
|
125
189
|
limit: { type: "number", required: false, description: "Max results" },
|
|
126
190
|
},
|
|
127
191
|
async execute(input, ctx) {
|
|
@@ -134,7 +198,11 @@ export default function contentful(rl) {
|
|
|
134
198
|
rl.registerAction("locale.list", {
|
|
135
199
|
description: "List locales",
|
|
136
200
|
inputSchema: {
|
|
137
|
-
environmentId: {
|
|
201
|
+
environmentId: {
|
|
202
|
+
type: "string",
|
|
203
|
+
required: true,
|
|
204
|
+
description: "Environment ID",
|
|
205
|
+
},
|
|
138
206
|
limit: { type: "number", required: false, description: "Max results" },
|
|
139
207
|
},
|
|
140
208
|
async execute(input, ctx) {
|