@oomol-lab/open-connector 1.6.3 → 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/assets/open-connector/catalog/apps/aisa.json +568 -0
  2. package/assets/open-connector/catalog/apps/bilibili.json +2586 -0
  3. package/assets/open-connector/catalog/apps/bitwarden.json +1423 -0
  4. package/assets/open-connector/catalog/apps/cronfree.json +303 -0
  5. package/assets/open-connector/catalog/apps/cufinder.json +368 -0
  6. package/assets/open-connector/catalog/apps/feishu_app_bot.json +2 -2
  7. package/assets/open-connector/catalog/apps/gmail.json +73 -0
  8. package/assets/open-connector/catalog/apps/investoday_mcp.json +22228 -197
  9. package/assets/open-connector/catalog/apps/ixspy.json +2274 -0
  10. package/assets/open-connector/catalog/apps/jin10.json +1 -1
  11. package/assets/open-connector/catalog/apps/osv.json +663 -0
  12. package/assets/open-connector/catalog/apps/pdf_vector.json +329 -0
  13. package/assets/open-connector/catalog/apps/pulsetic.json +406 -0
  14. package/assets/open-connector/catalog/apps/shopee.json +1785 -0
  15. package/assets/open-connector/catalog/apps/slack.json +81 -0
  16. package/assets/open-connector/catalog/apps/slackbot.json +81 -0
  17. package/assets/open-connector/catalog/apps/speak_ai.json +360 -0
  18. package/assets/open-connector/catalog/apps/tongdaxin.json +11 -440
  19. package/assets/open-connector/catalog/apps/zyhub.json +1585 -0
  20. package/assets/open-connector/catalog/apps-index.json +1 -1
  21. package/package.json +1 -1
  22. package/src/core/json-schema.d.ts +5 -1
  23. package/src/core/json-schema.js +14 -2
  24. package/src/core/types.d.ts +9 -0
  25. package/src/oauth/oauth-credential-refresh-service.js +3 -1
  26. package/src/oauth/oauth-flow-service.js +17 -2
  27. package/src/oauth/oauth-token.d.ts +13 -0
  28. package/src/providers/action-contracts.generated.d.ts +16 -4
  29. package/src/providers/aisa/executors.d.ts +4 -0
  30. package/src/providers/aisa/executors.js +176 -0
  31. package/src/providers/bilibili/articles.d.ts +3 -0
  32. package/src/providers/bilibili/articles.js +369 -0
  33. package/src/providers/bilibili/executors.d.ts +8 -0
  34. package/src/providers/bilibili/executors.js +262 -0
  35. package/src/providers/bilibili/runtime.d.ts +95 -0
  36. package/src/providers/bilibili/runtime.js +238 -0
  37. package/src/providers/bilibili/upload.d.ts +14 -0
  38. package/src/providers/bilibili/upload.js +105 -0
  39. package/src/providers/bitwarden/executors.d.ts +3 -0
  40. package/src/providers/bitwarden/executors.js +146 -0
  41. package/src/providers/cronfree/executors.d.ts +4 -0
  42. package/src/providers/cronfree/executors.js +89 -0
  43. package/src/providers/cufinder/executors.d.ts +4 -0
  44. package/src/providers/cufinder/executors.js +105 -0
  45. package/src/providers/dropbox/executors.js +21 -3
  46. package/src/providers/elevenreader/runtime.js +6 -5
  47. package/src/providers/feishu_app_bot/scopes.js +1 -1
  48. package/src/providers/gmail/attachment-stream.d.ts +2 -0
  49. package/src/providers/gmail/attachment-stream.js +162 -0
  50. package/src/providers/gmail/executors.d.ts +3 -1
  51. package/src/providers/gmail/executors.js +53 -25
  52. package/src/providers/investoday_mcp/official-actions.js +19 -372
  53. package/src/providers/investoday_mcp/official-tool-types.d.ts +10 -0
  54. package/src/providers/investoday_mcp/official-tool-types.js +4 -0
  55. package/src/providers/investoday_mcp/official-tools/charts.d.ts +2 -0
  56. package/src/providers/investoday_mcp/official-tools/charts.js +32 -0
  57. package/src/providers/investoday_mcp/official-tools/fixed-income.d.ts +2 -0
  58. package/src/providers/investoday_mcp/official-tools/fixed-income.js +326 -0
  59. package/src/providers/investoday_mcp/official-tools/funds.d.ts +2 -0
  60. package/src/providers/investoday_mcp/official-tools/funds.js +1085 -0
  61. package/src/providers/investoday_mcp/official-tools/hong-kong.d.ts +2 -0
  62. package/src/providers/investoday_mcp/official-tools/hong-kong.js +275 -0
  63. package/src/providers/investoday_mcp/official-tools/indices-industries.d.ts +2 -0
  64. package/src/providers/investoday_mcp/official-tools/indices-industries.js +642 -0
  65. package/src/providers/investoday_mcp/official-tools/macro-calendar.d.ts +2 -0
  66. package/src/providers/investoday_mcp/official-tools/macro-calendar.js +398 -0
  67. package/src/providers/investoday_mcp/official-tools/other.d.ts +2 -0
  68. package/src/providers/investoday_mcp/official-tools/other.js +131 -0
  69. package/src/providers/investoday_mcp/official-tools/research-news.d.ts +2 -0
  70. package/src/providers/investoday_mcp/official-tools/research-news.js +302 -0
  71. package/src/providers/investoday_mcp/official-tools/stocks.d.ts +2 -0
  72. package/src/providers/investoday_mcp/official-tools/stocks.js +2829 -0
  73. package/src/providers/ixspy/executors.d.ts +3 -0
  74. package/src/providers/ixspy/executors.js +220 -0
  75. package/src/providers/mcp-client.d.ts +1 -0
  76. package/src/providers/mcp-client.js +41 -27
  77. package/src/providers/osv/executors.d.ts +2 -0
  78. package/src/providers/osv/executors.js +11 -0
  79. package/src/providers/osv/runtime.d.ts +9 -0
  80. package/src/providers/osv/runtime.js +66 -0
  81. package/src/providers/pdf_vector/executors.d.ts +4 -0
  82. package/src/providers/pdf_vector/executors.js +108 -0
  83. package/src/providers/provider-runtime.d.ts +3 -0
  84. package/src/providers/provider-runtime.js +4 -1
  85. package/src/providers/pulsetic/executors.d.ts +4 -0
  86. package/src/providers/pulsetic/executors.js +126 -0
  87. package/src/providers/registry.generated.js +12 -0
  88. package/src/providers/sellersprite_mcp/executors.js +2 -1
  89. package/src/providers/shopee/actions.d.ts +2 -0
  90. package/src/providers/shopee/actions.js +474 -0
  91. package/src/providers/shopee/executors.d.ts +3 -0
  92. package/src/providers/shopee/executors.js +85 -0
  93. package/src/providers/shopee/runtime.d.ts +79 -0
  94. package/src/providers/shopee/runtime.js +693 -0
  95. package/src/providers/slack/actions.js +17 -0
  96. package/src/providers/slack/runtime.js +62 -4
  97. package/src/providers/speak_ai/executors.d.ts +3 -0
  98. package/src/providers/speak_ai/executors.js +187 -0
  99. package/src/providers/tongdaxin/executors.js +5 -4
  100. package/src/providers/tongdaxin/named-action-output.js +3 -9
  101. package/src/providers/tongdaxin/named-action-routing.js +1 -1
  102. package/src/providers/tongdaxin/named-actions.js +1 -6
  103. package/src/providers/tushare/runtime.js +22 -9
  104. package/src/providers/twenty_crm/runtime.js +4 -2
  105. package/src/providers/zyhub/executors.d.ts +3 -0
  106. package/src/providers/zyhub/executors.js +240 -0
  107. package/src/server/files/transit-files.d.ts +3 -2
  108. package/src/server/files/transit-files.js +31 -35
@@ -0,0 +1,126 @@
1
+ import { optionalNumber, optionalRawString, optionalRecord, optionalString } from "../../core/cast.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerInputError, ProviderRequestError, providerResponseError, providerUserAgent, readProviderJsonBody, requiredResponseRecord, runProviderRequest, } from "../provider-runtime.js";
3
+ const service = "pulsetic";
4
+ const baseUrl = "https://api.pulsetic.com/api/public";
5
+ const handlers = {
6
+ async list_monitors(input, context) {
7
+ return {
8
+ monitors: responseArray(await request("/monitors", query({ page: input.page, per_page: input.perPage }), context, "execute"), "Pulsetic monitors response"),
9
+ };
10
+ },
11
+ async get_monitor(input, context) {
12
+ return {
13
+ monitor: requiredResponseRecord(await request(`/monitors/${monitorId(input.monitorId)}`, undefined, context, "execute"), "Pulsetic monitor response"),
14
+ };
15
+ },
16
+ list_monitor_snapshots(input, context) {
17
+ return history("snapshots", input, context);
18
+ },
19
+ list_monitor_checks(input, context) {
20
+ return history("checks", input, context);
21
+ },
22
+ list_monitor_events(input, context) {
23
+ return history("events", input, context);
24
+ },
25
+ async get_monitor_stats(input, context) {
26
+ return {
27
+ stats: requiredResponseRecord(await request(`/monitors/${monitorId(input.monitorId)}/stats`, undefined, context, "execute"), "Pulsetic monitor stats response"),
28
+ };
29
+ },
30
+ async get_monitor_downtime(input, context) {
31
+ const value = await request(`/monitors/${monitorId(input.monitorId)}/downtime`, query({ seconds: input.seconds }), context, "execute");
32
+ const downtimeSeconds = optionalNumber(value);
33
+ if (downtimeSeconds == null)
34
+ throw providerResponseError("Pulsetic monitor downtime response must be a number");
35
+ return { downtimeSeconds };
36
+ },
37
+ };
38
+ export const executors = defineApiKeyProviderExecutors(service, handlers, {
39
+ skipDnsValidation: true,
40
+ });
41
+ export const proxy = defineProviderProxy({
42
+ service,
43
+ baseUrl,
44
+ auth: { type: "api_key_header", name: "Authorization" },
45
+ skipDnsValidation: true,
46
+ });
47
+ export const credentialValidators = {
48
+ async apiKey(input, { fetcher, signal }) {
49
+ responseArray(await request("/monitors", query({ per_page: 1 }), { apiKey: input.apiKey, fetcher, signal }, "validate"), "Pulsetic monitors response");
50
+ return {
51
+ profile: { accountId: "pulsetic-api-key", displayName: "Pulsetic API Key" },
52
+ grantedScopes: [],
53
+ metadata: { apiBaseUrl: baseUrl, validationEndpoint: "/monitors?per_page=1" },
54
+ };
55
+ },
56
+ };
57
+ async function history(resource, input, context) {
58
+ const params = query({
59
+ start_dt: input.startTime,
60
+ end_dt: input.endTime,
61
+ page: resource === "snapshots" ? input.page : undefined,
62
+ per_page: resource === "snapshots" ? input.perPage : undefined,
63
+ monitor_event_type: resource === "events" ? input.eventType : undefined,
64
+ });
65
+ append(params, "nodes[]", input.nodes);
66
+ append(params, "response_codes[]", input.responseCodes);
67
+ return {
68
+ [resource]: responseArray(await request(`/monitors/${monitorId(input.monitorId)}/${resource}`, params, context, "execute"), `Pulsetic ${resource} response`),
69
+ };
70
+ }
71
+ function responseArray(value, label) {
72
+ if (!Array.isArray(value))
73
+ throw providerResponseError(`${label} must be an array`);
74
+ return value;
75
+ }
76
+ async function request(path, params, context, phase) {
77
+ return runProviderRequest({ signal: context.signal, label: "Pulsetic" }, async (signal) => {
78
+ const url = new URL(path.replace(/^\//, ""), `${baseUrl}/`);
79
+ url.search = params?.toString() ?? "";
80
+ const response = await context.fetcher(url, {
81
+ headers: { accept: "application/json", authorization: context.apiKey, "user-agent": providerUserAgent },
82
+ signal,
83
+ });
84
+ const payload = await readProviderJsonBody(response, {
85
+ emptyBody: null,
86
+ invalidJsonMessage: "Pulsetic returned invalid JSON",
87
+ invalidJsonFallback: response.ok ? undefined : (text) => text.trim(),
88
+ });
89
+ if (!response.ok)
90
+ throw error(response.status, payload, phase);
91
+ return payload;
92
+ });
93
+ }
94
+ function error(status, payload, phase) {
95
+ const record = optionalRecord(payload);
96
+ const message = optionalRawString(payload) ??
97
+ optionalString(record?.message) ??
98
+ optionalString(record?.error) ??
99
+ optionalString(record?.detail) ??
100
+ `Pulsetic request failed with status ${status}`;
101
+ if (status === 429)
102
+ return new ProviderRequestError(429, message, payload);
103
+ if (phase === "validate" && status >= 400 && status < 500)
104
+ return providerInputError(message);
105
+ if (phase === "execute" && [400, 404, 422].includes(status))
106
+ return providerInputError(message);
107
+ return new ProviderRequestError(status || 502, message, payload);
108
+ }
109
+ function query(values) {
110
+ const result = new URLSearchParams();
111
+ for (const [key, value] of Object.entries(values))
112
+ if (value != null)
113
+ result.set(key, String(value));
114
+ return result;
115
+ }
116
+ function append(query, name, value) {
117
+ if (Array.isArray(value))
118
+ for (const item of value)
119
+ query.append(name, String(item));
120
+ }
121
+ function monitorId(value) {
122
+ const id = Number(value);
123
+ if (!Number.isInteger(id) || id < 1)
124
+ throw providerInputError("monitorId must be a positive integer");
125
+ return id;
126
+ }
@@ -40,6 +40,7 @@ export const executorModules = {
40
40
  airfocus: () => import("./airfocus/executors.js"),
41
41
  airmeet: () => import("./airmeet/executors.js"),
42
42
  airtable: () => import("./airtable/executors.js"),
43
+ aisa: () => import("./aisa/executors.js"),
43
44
  aitable_ai: () => import("./aitable_ai/executors.js"),
44
45
  aivoov: () => import("./aivoov/executors.js"),
45
46
  alchemy: () => import("./alchemy/executors.js"),
@@ -146,6 +147,7 @@ export const executorModules = {
146
147
  bigmailer: () => import("./bigmailer/executors.js"),
147
148
  bigml: () => import("./bigml/executors.js"),
148
149
  bigpicture_io: () => import("./bigpicture_io/executors.js"),
150
+ bilibili: () => import("./bilibili/executors.js"),
149
151
  bing_webmaster: () => import("./bing_webmaster/executors.js"),
150
152
  biorxiv_medrxiv: () => import("./biorxiv_medrxiv/executors.js"),
151
153
  bird: () => import("./bird/executors.js"),
@@ -153,6 +155,7 @@ export const executorModules = {
153
155
  bitly: () => import("./bitly/executors.js"),
154
156
  bitquery: () => import("./bitquery/executors.js"),
155
157
  bitrise: () => import("./bitrise/executors.js"),
158
+ bitwarden: () => import("./bitwarden/executors.js"),
156
159
  bland_ai: () => import("./bland_ai/executors.js"),
157
160
  blaze_meter_functional: () => import("./blaze_meter_functional/executors.js"),
158
161
  blaze_meter_performance: () => import("./blaze_meter_performance/executors.js"),
@@ -315,6 +318,7 @@ export const executorModules = {
315
318
  cratedb_cloud: () => import("./cratedb_cloud/executors.js"),
316
319
  credit_repair_cloud: () => import("./credit_repair_cloud/executors.js"),
317
320
  crisp: () => import("./crisp/executors.js"),
321
+ cronfree: () => import("./cronfree/executors.js"),
318
322
  cronitor: () => import("./cronitor/executors.js"),
319
323
  cronly: () => import("./cronly/executors.js"),
320
324
  crossref: () => import("./crossref/executors.js"),
@@ -323,6 +327,7 @@ export const executorModules = {
323
327
  crustdata: () => import("./crustdata/executors.js"),
324
328
  crypto_apis: () => import("./crypto_apis/executors.js"),
325
329
  cubox: () => import("./cubox/executors.js"),
330
+ cufinder: () => import("./cufinder/executors.js"),
326
331
  currencyapi: () => import("./currencyapi/executors.js"),
327
332
  currencyscoop: () => import("./currencyscoop/executors.js"),
328
333
  currents_api: () => import("./currents_api/executors.js"),
@@ -680,6 +685,7 @@ export const executorModules = {
680
685
  iqair_airvisual: () => import("./iqair_airvisual/executors.js"),
681
686
  it_glue: () => import("./it_glue/executors.js"),
682
687
  itunes_search: () => import("./itunes_search/executors.js"),
688
+ ixspy: () => import("./ixspy/executors.js"),
683
689
  iyunbiao: () => import("./iyunbiao/executors.js"),
684
690
  jamie: () => import("./jamie/executors.js"),
685
691
  jazzhr: () => import("./jazzhr/executors.js"),
@@ -963,6 +969,7 @@ export const executorModules = {
963
969
  orimon: () => import("./orimon/executors.js"),
964
970
  ortto: () => import("./ortto/executors.js"),
965
971
  ossinsight: () => import("./ossinsight/executors.js"),
972
+ osv: () => import("./osv/executors.js"),
966
973
  otter_ai: () => import("./otter_ai/executors.js"),
967
974
  oura: () => import("./oura/executors.js"),
968
975
  outline: () => import("./outline/executors.js"),
@@ -995,6 +1002,7 @@ export const executorModules = {
995
1002
  paystack: () => import("./paystack/executors.js"),
996
1003
  pdf_api_io: () => import("./pdf_api_io/executors.js"),
997
1004
  pdf_co: () => import("./pdf_co/executors.js"),
1005
+ pdf_vector: () => import("./pdf_vector/executors.js"),
998
1006
  pdfless: () => import("./pdfless/executors.js"),
999
1007
  pdfmonkey: () => import("./pdfmonkey/executors.js"),
1000
1008
  peec: () => import("./peec/executors.js"),
@@ -1067,6 +1075,7 @@ export const executorModules = {
1067
1075
  proxiedmail: () => import("./proxiedmail/executors.js"),
1068
1076
  prtg_classic: () => import("./prtg_classic/executors.js"),
1069
1077
  pubmed: () => import("./pubmed/executors.js"),
1078
+ pulsetic: () => import("./pulsetic/executors.js"),
1070
1079
  push_by_techulus: () => import("./push_by_techulus/executors.js"),
1071
1080
  pushbullet: () => import("./pushbullet/executors.js"),
1072
1081
  pushover: () => import("./pushover/executors.js"),
@@ -1206,6 +1215,7 @@ export const executorModules = {
1206
1215
  shipengine: () => import("./shipengine/executors.js"),
1207
1216
  shippo: () => import("./shippo/executors.js"),
1208
1217
  shodan: () => import("./shodan/executors.js"),
1218
+ shopee: () => import("./shopee/executors.js"),
1209
1219
  shopify: () => import("./shopify/executors.js"),
1210
1220
  shopify_admin: () => import("./shopify_admin/executors.js"),
1211
1221
  shopify_partner: () => import("./shopify_partner/executors.js"),
@@ -1254,6 +1264,7 @@ export const executorModules = {
1254
1264
  sonarcloud: () => import("./sonarcloud/executors.js"),
1255
1265
  sorftime: () => import("./sorftime/executors.js"),
1256
1266
  sorftime_mcp: () => import("./sorftime_mcp/executors.js"),
1267
+ speak_ai: () => import("./speak_ai/executors.js"),
1257
1268
  speechmatics: () => import("./speechmatics/executors.js"),
1258
1269
  speedtest_tracker: () => import("./speedtest_tracker/executors.js"),
1259
1270
  spider: () => import("./spider/executors.js"),
@@ -1540,6 +1551,7 @@ export const executorModules = {
1540
1551
  zoom: () => import("./zoom/executors.js"),
1541
1552
  zorus: () => import("./zorus/executors.js"),
1542
1553
  zotero: () => import("./zotero/executors.js"),
1554
+ zyhub: () => import("./zyhub/executors.js"),
1543
1555
  zylvie: () => import("./zylvie/executors.js"),
1544
1556
  zyte_api: () => import("./zyte_api/executors.js"),
1545
1557
  };
@@ -87,8 +87,9 @@ function normalize(result) {
87
87
  const message = envelope.message ?? `SellerSprite MCP tool failed with ${envelope.code}`;
88
88
  if (["ERROR_UNAUTHORIZED", "ERROR_SECRET_KEY", "ERROR_SECRET_KEY_INVALID", "ERROR_SECRET_KEY_OVERDUE"].includes(envelope.code))
89
89
  throw new ProviderRequestError(401, message, envelope);
90
- if (envelope.code === "ERROR_VISIT_MAX")
90
+ if (envelope.code === "ERROR_VISIT_MAX" || envelope.code === "ERROR_MAXIMUM_ACCESS_PER_MINUTE") {
91
91
  throw new ProviderRequestError(429, message, envelope);
92
+ }
92
93
  if (envelope.code === "ERROR_AUTH_ERROR")
93
94
  throw new ProviderRequestError(403, message, envelope);
94
95
  if (envelope.code === "ERROR_PARAM")
@@ -0,0 +1,2 @@
1
+ import type { ActionDefinition } from "../../core/types.ts";
2
+ export declare const shopeeActions: ActionDefinition[];