@tool-bridge/server 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/{airtable-23JBIM6X.js → airtable-DMJEEGJP.js} +19 -16
  2. package/dist/{alt_text_generator_ai-ADWBTCIH.js → alt_text_generator_ai-RELFQ5FV.js} +4 -4
  3. package/dist/{amap-CYQCYW2Z.js → amap-YSYEACKQ.js} +4 -4
  4. package/dist/{anthropic-5P62HDNR.js → anthropic-D5X5GSYE.js} +23 -25
  5. package/dist/{apify-54RZUAGW.js → apify-5NVFU3IZ.js} +20 -19
  6. package/dist/{brave_search-AHJ6FTD5.js → brave_search-X557FMGO.js} +16 -14
  7. package/dist/chunk-JEWFX6Z6.js +71 -0
  8. package/dist/{chunk-CLEZ6YQ6.js → chunk-MDY7K5CX.js} +1090 -606
  9. package/dist/{chunk-OKRZPQ3R.js → chunk-MZCIPUNQ.js} +1002 -242
  10. package/dist/{chunk-VLOIDU5U.js → chunk-Q74GLIDK.js} +3 -3
  11. package/dist/{chunk-B4P6YZFS.js → chunk-QR4LK3HF.js} +1 -1
  12. package/dist/{chunk-SWBNHIO4.js → chunk-ZTTN6AJG.js} +1 -1
  13. package/dist/{circleci-UM3NSQJ3.js → circleci-3P3QTUX2.js} +20 -24
  14. package/dist/{clerk-FE5LQ2CZ.js → clerk-GNMZQ2MY.js} +22 -21
  15. package/dist/{cloudflare_dns-KEZABKUT.js → cloudflare_dns-VWZH3ZTR.js} +21 -17
  16. package/dist/{cohere-4IPJADXP.js → cohere-C7QVIIMG.js} +19 -17
  17. package/dist/{confluence-56QEKNQI.js → confluence-52I37IUT.js} +16 -11
  18. package/dist/{convertapi-3QRM5K5T.js → convertapi-3TRJ3WEO.js} +3 -3
  19. package/dist/{currencyapi-L6G4OND5.js → currencyapi-LWEANWVI.js} +23 -26
  20. package/dist/{deepseek-LGC6HBFG.js → deepseek-5U24YG4P.js} +27 -17
  21. package/dist/{docker_hub-XDMK3BIU.js → docker_hub-CMISLRSE.js} +4 -4
  22. package/dist/{dropbox-4QARMFZU.js → dropbox-TW4QN6FT.js} +9 -8
  23. package/dist/{dub-C6JSJKOT.js → dub-EFXGI5UH.js} +22 -19
  24. package/dist/{e2b-6A6TVACJ.js → e2b-PHM63OVF.js} +20 -20
  25. package/dist/{exa-SIWWW6AA.js → exa-DYOQWURR.js} +22 -25
  26. package/dist/{fal_ai-3IJXOKSP.js → fal_ai-VJPMCNRH.js} +18 -17
  27. package/dist/{feishu-L4KDA4DC.js → feishu-TFIZXPIN.js} +2 -2
  28. package/dist/{feishu_custom_bot-SDM75H4P.js → feishu_custom_bot-ADSE23KU.js} +3 -3
  29. package/dist/{figma-6DD436DN.js → figma-4AK47AYY.js} +21 -23
  30. package/dist/{firehydrant-SYSGYB3R.js → firehydrant-RGPTW4EA.js} +15 -15
  31. package/dist/{fixer-FZG7ASTF.js → fixer-OAMF4DKP.js} +4 -4
  32. package/dist/{fly-HMRCZBUC.js → fly-YB4AQD4O.js} +20 -16
  33. package/dist/{front-FAFSD7I3.js → front-6GTVYKUM.js} +20 -23
  34. package/dist/{geocodio-4D3TWENM.js → geocodio-YRT4K25M.js} +4 -4
  35. package/dist/{ghost-OSO2FOZS.js → ghost-JCW6UIP2.js} +4 -4
  36. package/dist/{github-OR4I4RHE.js → github-CEGVRMNX.js} +28 -27
  37. package/dist/{gmail-5AOPJ63E.js → gmail-JCMJD55P.js} +17 -17
  38. package/dist/{googlecalendar-SOJIJUWH.js → googlecalendar-2EAW4MNM.js} +16 -14
  39. package/dist/{googledocs-QSKN5TLN.js → googledocs-YNKKBM6Q.js} +3 -3
  40. package/dist/{grafana-R3AIZM7M.js → grafana-353VSGXN.js} +24 -25
  41. package/dist/{graphhopper-4CR3QOAX.js → graphhopper-H3IVJNDS.js} +4 -4
  42. package/dist/index.d.ts +52 -36
  43. package/dist/index.js +3 -3
  44. package/dist/{ip2proxy-OBCG6X6J.js → ip2proxy-DBGRWH7S.js} +4 -4
  45. package/dist/{ipgeolocation_io-NHH3DTQW.js → ipgeolocation_io-5I2BDVMG.js} +4 -4
  46. package/dist/{ipqualityscore-7POMCBEC.js → ipqualityscore-ILV7TQCV.js} +4 -4
  47. package/dist/{jina_ai-YXVKROV4.js → jina_ai-L5BH455V.js} +20 -21
  48. package/dist/{jira-LADO3VJU.js → jira-IGTILUZA.js} +20 -16
  49. package/dist/{langsmith-XZ6UAQFU.js → langsmith-BYRX4AOF.js} +25 -25
  50. package/dist/{lemlist-P74GLNE7.js → lemlist-ZGNYTIQO.js} +23 -24
  51. package/dist/{linear-CXJ7D37A.js → linear-HLGOWISN.js} +3 -3
  52. package/dist/{logsnag-EVVHWFLK.js → logsnag-5RGTMTU2.js} +20 -22
  53. package/dist/main.js +102 -102
  54. package/dist/{mattermost-WG2MRGBD.js → mattermost-BONGXVC7.js} +21 -17
  55. package/dist/{mem0-HQWUKG6U.js → mem0-RUVNUPTE.js} +15 -15
  56. package/dist/{memos-SQMJIFOE.js → memos-TED4HI54.js} +36 -32
  57. package/dist/{metabase-E27G2DZI.js → metabase-ZHXHRHZK.js} +22 -18
  58. package/dist/{mistral_ai-MIL63NIT.js → mistral_ai-NGP5SHU7.js} +24 -21
  59. package/dist/{mother_duck-AIZVCBNR.js → mother_duck-TKVQM35M.js} +23 -19
  60. package/dist/{ngrok-XS4DVIQS.js → ngrok-BYCUJ7QV.js} +17 -22
  61. package/dist/{notes-JEOUSL2Y.js → notes-KXRNNYDW.js} +1 -1
  62. package/dist/{notion-U4EZVDW2.js → notion-2ILYKJOO.js} +20 -17
  63. package/dist/{open_exchange_rates-AZSQEYEJ.js → open_exchange_rates-JU4DC6HZ.js} +4 -4
  64. package/dist/{openai-HW3SYMTQ.js → openai-6SOT26ZK.js} +22 -16
  65. package/dist/{opengraph_io-QX74MAEL.js → opengraph_io-ZEFHV2OL.js} +4 -4
  66. package/dist/{openrouter-OXSKYL6N.js → openrouter-R4P7JL5L.js} +19 -14
  67. package/dist/{outline-CCQAPDSW.js → outline-VCTQ5V2X.js} +18 -20
  68. package/dist/{paddle-6KQPSSCK.js → paddle-AZOAKBJS.js} +17 -15
  69. package/dist/{perplexity-2TXO7IQE.js → perplexity-OMRLGVAT.js} +19 -23
  70. package/dist/{pinecone-YOO7NULI.js → pinecone-DI62W3ZX.js} +19 -24
  71. package/dist/{pipedrive-Q6RIFIFP.js → pipedrive-CW7HONYW.js} +22 -23
  72. package/dist/{polar-KUMGCES3.js → polar-5DRGTXNR.js} +19 -17
  73. package/dist/{posthog-VXQHBSMB.js → posthog-3DTHFCKE.js} +29 -24
  74. package/dist/{postmark-YLIPF52S.js → postmark-ME2V2XXI.js} +19 -17
  75. package/dist/{prerender-CRY7UJN5.js → prerender-5EAY7GDM.js} +4 -4
  76. package/dist/{pubmed-3Z4T5AM7.js → pubmed-GRQUBGVA.js} +3 -3
  77. package/dist/{railway-BP37IGFL.js → railway-FTM75TMX.js} +3 -3
  78. package/dist/{readwise-HTKICF4K.js → readwise-IJQGV6IQ.js} +16 -15
  79. package/dist/{render-WIVTUXJH.js → render-TMSPHRTY.js} +21 -20
  80. package/dist/{replicate-JJYPA43D.js → replicate-RJCMDB7H.js} +20 -21
  81. package/dist/{resend-TKHZVG7A.js → resend-YYN22NIL.js} +15 -11
  82. package/dist/{rootly-FRSZLG5U.js → rootly-7RXE4K7L.js} +19 -18
  83. package/dist/{scrapfly-M5WXGQWE.js → scrapfly-ZJJ6XM4Q.js} +4 -4
  84. package/dist/{scrapingbee-PMXNLLBK.js → scrapingbee-QNGEOD6D.js} +4 -4
  85. package/dist/{screenshot_fyi-HFW4TAOH.js → screenshot_fyi-SPZAABVD.js} +4 -4
  86. package/dist/{semantic_scholar-KXVH2VZQ.js → semantic_scholar-SDPVGDDI.js} +21 -20
  87. package/dist/{sentry-WWOT2LRX.js → sentry-SJ5NN4C4.js} +22 -19
  88. package/dist/{shodan-FY635H35.js → shodan-YMGOY7KW.js} +4 -4
  89. package/dist/{shopify-HQLBVSA5.js → shopify-SU5ABP54.js} +23 -19
  90. package/dist/{stripe-GJN2GOHB.js → stripe-JAC425KE.js} +3 -3
  91. package/dist/{supabase-BBNZGQU6.js → supabase-GQ2OFVIL.js} +18 -17
  92. package/dist/{tavily-DPENIBOG.js → tavily-Y7MDA5CI.js} +20 -20
  93. package/dist/{telegram-L4NONG6H.js → telegram-OIDT3ZLH.js} +4 -4
  94. package/dist/{telnyx-H67MAEZS.js → telnyx-4JGMC3K7.js} +19 -19
  95. package/dist/{todoist-G2BSP4DX.js → todoist-O7S2OUGX.js} +18 -17
  96. package/dist/{trello-7WMVFDG2.js → trello-3LDE4TAQ.js} +4 -4
  97. package/dist/{turso-ZUAESFC2.js → turso-MUQ44KCA.js} +23 -30
  98. package/dist/{twilio-EYFYIX3B.js → twilio-VYF3HUU6.js} +3 -3
  99. package/dist/{umami-AXAUDUVF.js → umami-SVQIK26J.js} +23 -28
  100. package/dist/{unsplash-UCQAWPLR.js → unsplash-333XYDCJ.js} +19 -18
  101. package/dist/{upstash_redis-ZPZ4ASU6.js → upstash_redis-IUM2HDLU.js} +17 -13
  102. package/dist/{uptimerobot-4QVKKUD5.js → uptimerobot-7ZRU2NJV.js} +3 -3
  103. package/dist/{v2ex-VGEFJTYC.js → v2ex-AVSJCQPS.js} +35 -18
  104. package/dist/{vercel-JME4TSCN.js → vercel-J7RGXNSA.js} +21 -18
  105. package/dist/{wolfram_alpha_api-TRGU2MDG.js → wolfram_alpha_api-6CRVUZOJ.js} +4 -4
  106. package/dist/{wordpress-WRUKLCZR.js → wordpress-THOJLPKA.js} +21 -17
  107. package/dist/{workos-ZDW4EHS4.js → workos-ENTGRWF2.js} +26 -27
  108. package/dist/{zhihu-4VI67CWU.js → zhihu-W2BXICTX.js} +21 -21
  109. package/package.json +3 -3
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
3
+ } from "./chunk-Q74GLIDK.js";
4
4
  import "./chunk-JXHMDBAY.js";
5
5
  import {
6
6
  createProviderPlugin,
7
7
  requireApiKey,
8
8
  upstreamError
9
- } from "./chunk-B4P6YZFS.js";
10
- import "./chunk-SWBNHIO4.js";
9
+ } from "./chunk-QR4LK3HF.js";
10
+ import "./chunk-ZTTN6AJG.js";
11
11
  import {
12
12
  TBError,
13
13
  external_exports
14
- } from "./chunk-OKRZPQ3R.js";
14
+ } from "./chunk-MZCIPUNQ.js";
15
15
  import "./chunk-U67V476Y.js";
16
16
 
17
17
  // ../plugins/src/ipqualityscore/api.ts
@@ -1,40 +1,39 @@
1
1
  import {
2
- createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
4
- import {
5
- messageFrom
6
- } from "./chunk-JXHMDBAY.js";
2
+ createAuthedClient
3
+ } from "./chunk-JEWFX6Z6.js";
4
+ import "./chunk-Q74GLIDK.js";
5
+ import "./chunk-JXHMDBAY.js";
7
6
  import {
8
7
  createProviderPlugin,
9
- requireApiKey,
10
8
  upstreamError
11
- } from "./chunk-B4P6YZFS.js";
12
- import "./chunk-SWBNHIO4.js";
9
+ } from "./chunk-QR4LK3HF.js";
10
+ import "./chunk-ZTTN6AJG.js";
13
11
  import {
14
12
  external_exports
15
- } from "./chunk-OKRZPQ3R.js";
13
+ } from "./chunk-MZCIPUNQ.js";
16
14
  import "./chunk-U67V476Y.js";
17
15
 
18
16
  // ../plugins/src/jina_ai/api.ts
19
17
  var SERVICE = "jina_ai";
20
18
  var REQUEST_TIMEOUT_MS = 3e4;
21
- var http = createProviderHttpClient({ baseUrl: "https://api.jina.ai/", service: SERVICE });
19
+ var http = createAuthedClient({
20
+ baseUrl: "https://api.jina.ai/",
21
+ service: SERVICE,
22
+ auth: { kind: "bearer" },
23
+ headers: { accept: "application/json" },
24
+ errorMessage: {
25
+ keys: ["detail", "message"],
26
+ fallback: (status) => `Jina AI request failed with ${status}`
27
+ },
28
+ mapTransportError: ({ kind, message }) => kind === "timeout" ? upstreamError(504, `Jina AI ${REQUEST_TIMEOUT_MS / 1e3}s \u5185\u6CA1\u6709\u8FD4\u56DE`) : upstreamError(502, `Jina AI \u8BF7\u6C42\u5931\u8D25: ${message ?? "unknown network error"}`)
29
+ });
22
30
  async function request(ctx, path, body) {
23
- const { data } = await http.request({
31
+ const { data } = await http.request(ctx, {
24
32
  path,
25
33
  method: "POST",
26
- headers: {
27
- accept: "application/json",
28
- authorization: `Bearer ${requireApiKey(ctx, SERVICE)}`
29
- },
30
34
  json: body,
31
35
  timeoutMs: REQUEST_TIMEOUT_MS,
32
- invalidJsonMessage: "Jina AI \u8FD4\u56DE\u4E86\u975E JSON \u54CD\u5E94",
33
- mapError: ({ data: payload, status }) => upstreamError(
34
- status,
35
- messageFrom(payload, ["detail", "message"], `Jina AI request failed with ${status}`)
36
- ),
37
- mapTransportError: ({ kind, message }) => kind === "timeout" ? upstreamError(504, `Jina AI ${REQUEST_TIMEOUT_MS / 1e3}s \u5185\u6CA1\u6709\u8FD4\u56DE`) : upstreamError(502, `Jina AI \u8BF7\u6C42\u5931\u8D25: ${message ?? "unknown network error"}`)
36
+ invalidJsonMessage: "Jina AI \u8FD4\u56DE\u4E86\u975E JSON \u54CD\u5E94"
38
37
  });
39
38
  return data ?? null;
40
39
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
- createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
2
+ createAuthedClient
3
+ } from "./chunk-JEWFX6Z6.js";
4
+ import "./chunk-Q74GLIDK.js";
4
5
  import {
5
6
  asJsonObject,
6
7
  booleanValue,
@@ -12,20 +13,19 @@ import {
12
13
  createProviderPlugin,
13
14
  requireCredential,
14
15
  upstreamError
15
- } from "./chunk-B4P6YZFS.js";
16
+ } from "./chunk-QR4LK3HF.js";
16
17
  import {
17
18
  assertPublicHttpUrl
18
- } from "./chunk-SWBNHIO4.js";
19
+ } from "./chunk-ZTTN6AJG.js";
19
20
  import {
20
21
  TBError,
21
22
  external_exports
22
- } from "./chunk-OKRZPQ3R.js";
23
+ } from "./chunk-MZCIPUNQ.js";
23
24
  import "./chunk-U67V476Y.js";
24
25
 
25
26
  // ../plugins/src/jira/api.ts
26
27
  var SERVICE = "jira";
27
28
  var DEFAULT_LIMIT = 50;
28
- var http = createProviderHttpClient({ service: SERVICE });
29
29
  var DEFAULT_ISSUE_FIELD_IDS = [
30
30
  "summary",
31
31
  "description",
@@ -116,23 +116,27 @@ function responsePayload(data, bodyKind) {
116
116
  if (bodyKind === "empty") return {};
117
117
  return bodyKind === "invalid-json" ? { message: data } : data;
118
118
  }
119
+ var http = createAuthedClient({
120
+ service: SERVICE,
121
+ auth: {
122
+ kind: "custom",
123
+ headers: (ctx) => ({ authorization: `Bearer ${requireCredential(ctx, SERVICE, "personalAccessToken")}` })
124
+ },
125
+ headers: { accept: "application/json" },
126
+ mapError: ({ bodyKind, data, status }) => upstreamError(
127
+ status,
128
+ errorMessage(responsePayload(data, bodyKind))
129
+ )
130
+ });
119
131
  async function requestValue(ctx, options) {
120
132
  const baseUrl = apiBaseUrl(ctx);
121
- const result = await http.request({
133
+ const result = await http.request(ctx, {
122
134
  baseUrl,
123
135
  // create_issue 会跟随 Jira 返回的 self;buildUrl 先锁定 origin 与 REST API path 前缀。
124
136
  path: buildUrl(baseUrl, options.path, options.query),
125
137
  method: options.method ?? (options.body === void 0 ? "GET" : "POST"),
126
- headers: {
127
- accept: "application/json",
128
- authorization: `Bearer ${requireCredential(ctx, SERVICE, "personalAccessToken")}`
129
- },
130
138
  ...options.body === void 0 ? {} : { json: options.body },
131
- invalidJson: "text",
132
- mapError: ({ bodyKind, data, status }) => upstreamError(
133
- status,
134
- errorMessage(responsePayload(data, bodyKind))
135
- )
139
+ invalidJson: "text"
136
140
  });
137
141
  return responsePayload(result.data, result.bodyKind);
138
142
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
- createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
2
+ createAuthedClient
3
+ } from "./chunk-JEWFX6Z6.js";
4
+ import "./chunk-Q74GLIDK.js";
4
5
  import {
5
6
  asJsonObject,
6
7
  compactDefined,
@@ -12,19 +13,32 @@ import {
12
13
  createProviderPlugin,
13
14
  requireApiKey,
14
15
  upstreamError
15
- } from "./chunk-B4P6YZFS.js";
16
- import "./chunk-SWBNHIO4.js";
16
+ } from "./chunk-QR4LK3HF.js";
17
+ import "./chunk-ZTTN6AJG.js";
17
18
  import {
18
19
  TBError,
19
20
  external_exports
20
- } from "./chunk-OKRZPQ3R.js";
21
+ } from "./chunk-MZCIPUNQ.js";
21
22
  import "./chunk-U67V476Y.js";
22
23
 
23
24
  // ../plugins/src/langsmith/api.ts
24
25
  var SERVICE = "langsmith";
25
26
  var WORKSPACES_PATH = "/api/v1/workspaces";
26
27
  var DEFAULT_REGION = "us";
27
- var http = createProviderHttpClient({ service: SERVICE });
28
+ var http = createAuthedClient({
29
+ service: SERVICE,
30
+ auth: { kind: "header", name: "X-Api-Key" },
31
+ headers: { accept: "application/json" },
32
+ // 错误消息四处之一;拿不到就退回状态行。
33
+ errorMessage: {
34
+ keys: ["detail", "message", "error", "title"],
35
+ fallback: (status, statusText) => trimmedText(statusText) ?? `langsmith \u8FD4\u56DE HTTP ${status}`
36
+ },
37
+ mapTransportError: ({ message }) => upstreamError(
38
+ 502,
39
+ `langsmith \u8BF7\u6C42\u5931\u8D25: ${message ?? "\u672A\u77E5\u9519\u8BEF"}`
40
+ )
41
+ });
28
42
  var REGION_BASE_URLS = {
29
43
  us: "https://api.smith.langchain.com",
30
44
  eu: "https://eu.api.smith.langchain.com",
@@ -48,12 +62,6 @@ function resolveWorkspaceId(ctx) {
48
62
  if (configured !== void 0 && typeof configured !== "string") throw configError("workspaceId \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");
49
63
  return trimmedText(configured);
50
64
  }
51
- function errorMessage(context) {
52
- const payload = context.data;
53
- const fromText = typeof payload === "string" ? trimmedText(payload) : void 0;
54
- const body = asJsonObject(payload);
55
- return fromText ?? trimmedText(body?.detail) ?? trimmedText(body?.message) ?? trimmedText(body?.error) ?? trimmedText(body?.title) ?? trimmedText(context.statusText) ?? `langsmith \u8FD4\u56DE HTTP ${context.status}`;
56
- }
57
65
  function queryPairs(query) {
58
66
  return Object.entries(query ?? {}).flatMap(([key, value]) => {
59
67
  if (value === void 0 || value === null) return [];
@@ -61,25 +69,17 @@ function queryPairs(query) {
61
69
  });
62
70
  }
63
71
  async function request(ctx, input) {
64
- const apiKey = requireApiKey(ctx, SERVICE);
72
+ requireApiKey(ctx, SERVICE);
65
73
  const workspaceId = resolveWorkspaceId(ctx);
66
- const result = await http.request({
74
+ const result = await http.request(ctx, {
67
75
  baseUrl: resolveApiBase(ctx),
68
76
  path: input.path,
69
77
  method: input.method ?? "GET",
70
78
  query: queryPairs(input.query),
71
- headers: {
72
- "accept": "application/json",
73
- "X-Api-Key": apiKey,
74
- ...workspaceId === void 0 ? {} : { "X-Tenant-Id": workspaceId }
75
- },
79
+ // 一个 API key 能看到多个 workspace 时,靠 `X-Tenant-Id` 指定用哪个。
80
+ ...workspaceId === void 0 ? {} : { headers: { "X-Tenant-Id": workspaceId } },
76
81
  ...input.body === void 0 ? {} : { json: input.body },
77
- invalidJson: "text",
78
- mapError: (context) => upstreamError(context.status, errorMessage(context)),
79
- mapTransportError: ({ message }) => upstreamError(
80
- 502,
81
- `langsmith \u8BF7\u6C42\u5931\u8D25: ${message ?? "\u672A\u77E5\u9519\u8BEF"}`
82
- )
82
+ invalidJson: "text"
83
83
  });
84
84
  return result.data === void 0 ? null : result.data;
85
85
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
- createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
2
+ createAuthedClient
3
+ } from "./chunk-JEWFX6Z6.js";
4
+ import "./chunk-Q74GLIDK.js";
4
5
  import {
5
6
  asJsonObject,
6
7
  compactDefined,
@@ -10,18 +11,17 @@ import {
10
11
  createProviderPlugin,
11
12
  requireApiKey,
12
13
  upstreamError
13
- } from "./chunk-B4P6YZFS.js";
14
- import "./chunk-SWBNHIO4.js";
14
+ } from "./chunk-QR4LK3HF.js";
15
+ import "./chunk-ZTTN6AJG.js";
15
16
  import {
16
17
  TBError,
17
18
  external_exports
18
- } from "./chunk-OKRZPQ3R.js";
19
+ } from "./chunk-MZCIPUNQ.js";
19
20
  import "./chunk-U67V476Y.js";
20
21
 
21
22
  // ../plugins/src/lemlist/api.ts
22
23
  var SERVICE = "lemlist";
23
24
  var API_BASE = "https://api.lemlist.com/api";
24
- var http = createProviderHttpClient({ baseUrl: `${API_BASE}/`, service: SERVICE });
25
25
  function stringArray(value) {
26
26
  return Array.isArray(value) ? value.filter((item) => typeof item === "string") : void 0;
27
27
  }
@@ -35,33 +35,32 @@ function basicAuthHeader(apiKey) {
35
35
  for (const byte of bytes) binary += String.fromCharCode(byte);
36
36
  return `Basic ${btoa(binary)}`;
37
37
  }
38
- function errorMessage(payload) {
39
- if (typeof payload === "string") return trimmedText(payload);
40
- const body = asJsonObject(payload);
41
- if (body === void 0) return void 0;
42
- return trimmedText(body.message) ?? trimmedText(body.error) ?? trimmedText(body.reason);
43
- }
38
+ var http = createAuthedClient({
39
+ baseUrl: `${API_BASE}/`,
40
+ service: SERVICE,
41
+ // Basic(用户名留空、key 当密码)不在 helper 的三种头型里,自己拼。
42
+ auth: { kind: "custom", headers: (ctx) => ({ authorization: basicAuthHeader(requireApiKey(ctx, SERVICE)) }) },
43
+ headers: { accept: "application/json" },
44
+ errorMessage: {
45
+ keys: ["message", "error", "reason"],
46
+ fallback: (status) => `lemlist \u8BF7\u6C42\u5931\u8D25,HTTP ${status}`
47
+ },
48
+ mapTransportError: ({ message }) => upstreamError(
49
+ 502,
50
+ message === void 0 ? "lemlist \u8BF7\u6C42\u5931\u8D25" : `lemlist \u8BF7\u6C42\u5931\u8D25: ${message}`
51
+ )
52
+ });
44
53
  async function request(ctx, path, query = {}) {
45
- const apiKey = requireApiKey(ctx, SERVICE);
46
54
  const pairs = [];
47
55
  for (const [key, value] of Object.entries(query)) {
48
56
  if (typeof value === "number" || typeof value === "string" && value !== "") {
49
57
  pairs.push([key, value]);
50
58
  }
51
59
  }
52
- const { data } = await http.request({
60
+ const { data } = await http.request(ctx, {
53
61
  path,
54
62
  query: pairs,
55
- headers: { accept: "application/json", authorization: basicAuthHeader(apiKey) },
56
- invalidJson: "text",
57
- mapError: ({ data: payload, status }) => upstreamError(
58
- status,
59
- errorMessage(payload) ?? `lemlist \u8BF7\u6C42\u5931\u8D25,HTTP ${status}`
60
- ),
61
- mapTransportError: ({ message }) => upstreamError(
62
- 502,
63
- message === void 0 ? "lemlist \u8BF7\u6C42\u5931\u8D25" : `lemlist \u8BF7\u6C42\u5931\u8D25: ${message}`
64
- )
63
+ invalidJson: "text"
65
64
  });
66
65
  return data ?? null;
67
66
  }
@@ -7,14 +7,14 @@ import {
7
7
  createProviderPlugin,
8
8
  requireApiKey,
9
9
  upstreamError
10
- } from "./chunk-B4P6YZFS.js";
10
+ } from "./chunk-QR4LK3HF.js";
11
11
  import {
12
12
  guardedFetch
13
- } from "./chunk-SWBNHIO4.js";
13
+ } from "./chunk-ZTTN6AJG.js";
14
14
  import {
15
15
  TBError,
16
16
  external_exports
17
- } from "./chunk-OKRZPQ3R.js";
17
+ } from "./chunk-MZCIPUNQ.js";
18
18
  import "./chunk-U67V476Y.js";
19
19
 
20
20
  // ../plugins/src/linear/api.ts
@@ -1,38 +1,36 @@
1
1
  import {
2
- createProviderHttpClient
3
- } from "./chunk-VLOIDU5U.js";
2
+ createAuthedClient
3
+ } from "./chunk-JEWFX6Z6.js";
4
+ import "./chunk-Q74GLIDK.js";
5
+ import "./chunk-JXHMDBAY.js";
4
6
  import {
5
- messageFrom
6
- } from "./chunk-JXHMDBAY.js";
7
- import {
8
- createProviderPlugin,
9
- requireApiKey,
10
- upstreamError
11
- } from "./chunk-B4P6YZFS.js";
12
- import "./chunk-SWBNHIO4.js";
7
+ createProviderPlugin
8
+ } from "./chunk-QR4LK3HF.js";
9
+ import "./chunk-ZTTN6AJG.js";
13
10
  import {
14
11
  external_exports
15
- } from "./chunk-OKRZPQ3R.js";
12
+ } from "./chunk-MZCIPUNQ.js";
16
13
  import "./chunk-U67V476Y.js";
17
14
 
18
15
  // ../plugins/src/logsnag/api.ts
19
16
  var SERVICE = "logsnag";
20
- var http = createProviderHttpClient({ baseUrl: "https://api.logsnag.com/v1/", service: SERVICE });
17
+ var http = createAuthedClient({
18
+ baseUrl: "https://api.logsnag.com/v1/",
19
+ service: SERVICE,
20
+ auth: { kind: "bearer" },
21
+ headers: { accept: "application/json" },
22
+ errorMessage: {
23
+ keys: ["message", "error", "detail"],
24
+ fallback: (status) => `LogSnag request failed with ${status}`
25
+ }
26
+ });
21
27
  async function request(path, method, body, ctx) {
22
- const result = await http.request({
28
+ const result = await http.request(ctx, {
23
29
  path,
24
30
  method,
25
- headers: {
26
- accept: "application/json",
27
- authorization: `Bearer ${requireApiKey(ctx, SERVICE)}`
28
- },
29
31
  json: body,
30
32
  responseType: "auto",
31
- invalidJson: "text",
32
- mapError: ({ data, status }) => upstreamError(
33
- status,
34
- messageFrom(data, ["message", "error", "detail"], `LogSnag request failed with ${status}`)
35
- )
33
+ invalidJson: "text"
36
34
  });
37
35
  return {
38
36
  ok: true,
package/dist/main.js CHANGED
@@ -2,112 +2,112 @@
2
2
  import {
3
3
  configFromEnv,
4
4
  createTbServer
5
- } from "./chunk-CLEZ6YQ6.js";
6
- import "./chunk-SWBNHIO4.js";
7
- import "./chunk-OKRZPQ3R.js";
5
+ } from "./chunk-MDY7K5CX.js";
6
+ import "./chunk-ZTTN6AJG.js";
7
+ import "./chunk-MZCIPUNQ.js";
8
8
  import "./chunk-U67V476Y.js";
9
9
 
10
10
  // ../plugins/src/registry.generated.ts
11
11
  var BUILTIN_PLUGIN_LOADERS = {
12
- airtable: () => import("./airtable-23JBIM6X.js"),
13
- alt_text_generator_ai: () => import("./alt_text_generator_ai-ADWBTCIH.js"),
14
- amap: () => import("./amap-CYQCYW2Z.js"),
15
- anthropic: () => import("./anthropic-5P62HDNR.js"),
16
- apify: () => import("./apify-54RZUAGW.js"),
17
- brave_search: () => import("./brave_search-AHJ6FTD5.js"),
18
- circleci: () => import("./circleci-UM3NSQJ3.js"),
19
- clerk: () => import("./clerk-FE5LQ2CZ.js"),
20
- cloudflare_dns: () => import("./cloudflare_dns-KEZABKUT.js"),
21
- cohere: () => import("./cohere-4IPJADXP.js"),
22
- confluence: () => import("./confluence-56QEKNQI.js"),
23
- convertapi: () => import("./convertapi-3QRM5K5T.js"),
24
- currencyapi: () => import("./currencyapi-L6G4OND5.js"),
25
- deepseek: () => import("./deepseek-LGC6HBFG.js"),
26
- docker_hub: () => import("./docker_hub-XDMK3BIU.js"),
27
- dropbox: () => import("./dropbox-4QARMFZU.js"),
28
- dub: () => import("./dub-C6JSJKOT.js"),
29
- e2b: () => import("./e2b-6A6TVACJ.js"),
30
- exa: () => import("./exa-SIWWW6AA.js"),
31
- fal_ai: () => import("./fal_ai-3IJXOKSP.js"),
32
- feishu: () => import("./feishu-L4KDA4DC.js"),
33
- feishu_custom_bot: () => import("./feishu_custom_bot-SDM75H4P.js"),
34
- figma: () => import("./figma-6DD436DN.js"),
35
- firehydrant: () => import("./firehydrant-SYSGYB3R.js"),
36
- fixer: () => import("./fixer-FZG7ASTF.js"),
37
- fly: () => import("./fly-HMRCZBUC.js"),
38
- front: () => import("./front-FAFSD7I3.js"),
39
- geocodio: () => import("./geocodio-4D3TWENM.js"),
40
- ghost: () => import("./ghost-OSO2FOZS.js"),
41
- github: () => import("./github-OR4I4RHE.js"),
42
- gmail: () => import("./gmail-5AOPJ63E.js"),
43
- googlecalendar: () => import("./googlecalendar-SOJIJUWH.js"),
44
- googledocs: () => import("./googledocs-QSKN5TLN.js"),
45
- grafana: () => import("./grafana-R3AIZM7M.js"),
46
- graphhopper: () => import("./graphhopper-4CR3QOAX.js"),
47
- ip2proxy: () => import("./ip2proxy-OBCG6X6J.js"),
48
- ipgeolocation_io: () => import("./ipgeolocation_io-NHH3DTQW.js"),
49
- ipqualityscore: () => import("./ipqualityscore-7POMCBEC.js"),
50
- jina_ai: () => import("./jina_ai-YXVKROV4.js"),
51
- jira: () => import("./jira-LADO3VJU.js"),
52
- langsmith: () => import("./langsmith-XZ6UAQFU.js"),
53
- lemlist: () => import("./lemlist-P74GLNE7.js"),
54
- linear: () => import("./linear-CXJ7D37A.js"),
55
- logsnag: () => import("./logsnag-EVVHWFLK.js"),
56
- mattermost: () => import("./mattermost-WG2MRGBD.js"),
57
- mem0: () => import("./mem0-HQWUKG6U.js"),
58
- memos: () => import("./memos-SQMJIFOE.js"),
59
- metabase: () => import("./metabase-E27G2DZI.js"),
60
- mistral_ai: () => import("./mistral_ai-MIL63NIT.js"),
61
- mother_duck: () => import("./mother_duck-AIZVCBNR.js"),
62
- ngrok: () => import("./ngrok-XS4DVIQS.js"),
63
- notes: () => import("./notes-JEOUSL2Y.js"),
64
- notion: () => import("./notion-U4EZVDW2.js"),
65
- open_exchange_rates: () => import("./open_exchange_rates-AZSQEYEJ.js"),
66
- openai: () => import("./openai-HW3SYMTQ.js"),
67
- opengraph_io: () => import("./opengraph_io-QX74MAEL.js"),
68
- openrouter: () => import("./openrouter-OXSKYL6N.js"),
69
- outline: () => import("./outline-CCQAPDSW.js"),
70
- paddle: () => import("./paddle-6KQPSSCK.js"),
71
- perplexity: () => import("./perplexity-2TXO7IQE.js"),
72
- pinecone: () => import("./pinecone-YOO7NULI.js"),
73
- pipedrive: () => import("./pipedrive-Q6RIFIFP.js"),
74
- polar: () => import("./polar-KUMGCES3.js"),
75
- posthog: () => import("./posthog-VXQHBSMB.js"),
76
- postmark: () => import("./postmark-YLIPF52S.js"),
77
- prerender: () => import("./prerender-CRY7UJN5.js"),
78
- pubmed: () => import("./pubmed-3Z4T5AM7.js"),
79
- railway: () => import("./railway-BP37IGFL.js"),
80
- readwise: () => import("./readwise-HTKICF4K.js"),
81
- render: () => import("./render-WIVTUXJH.js"),
82
- replicate: () => import("./replicate-JJYPA43D.js"),
83
- resend: () => import("./resend-TKHZVG7A.js"),
84
- rootly: () => import("./rootly-FRSZLG5U.js"),
85
- scrapfly: () => import("./scrapfly-M5WXGQWE.js"),
86
- scrapingbee: () => import("./scrapingbee-PMXNLLBK.js"),
87
- screenshot_fyi: () => import("./screenshot_fyi-HFW4TAOH.js"),
88
- semantic_scholar: () => import("./semantic_scholar-KXVH2VZQ.js"),
89
- sentry: () => import("./sentry-WWOT2LRX.js"),
90
- shodan: () => import("./shodan-FY635H35.js"),
91
- shopify: () => import("./shopify-HQLBVSA5.js"),
92
- stripe: () => import("./stripe-GJN2GOHB.js"),
93
- supabase: () => import("./supabase-BBNZGQU6.js"),
94
- tavily: () => import("./tavily-DPENIBOG.js"),
95
- telegram: () => import("./telegram-L4NONG6H.js"),
96
- telnyx: () => import("./telnyx-H67MAEZS.js"),
97
- todoist: () => import("./todoist-G2BSP4DX.js"),
98
- trello: () => import("./trello-7WMVFDG2.js"),
99
- turso: () => import("./turso-ZUAESFC2.js"),
100
- twilio: () => import("./twilio-EYFYIX3B.js"),
101
- umami: () => import("./umami-AXAUDUVF.js"),
102
- unsplash: () => import("./unsplash-UCQAWPLR.js"),
103
- upstash_redis: () => import("./upstash_redis-ZPZ4ASU6.js"),
104
- uptimerobot: () => import("./uptimerobot-4QVKKUD5.js"),
105
- v2ex: () => import("./v2ex-VGEFJTYC.js"),
106
- vercel: () => import("./vercel-JME4TSCN.js"),
107
- wolfram_alpha_api: () => import("./wolfram_alpha_api-TRGU2MDG.js"),
108
- wordpress: () => import("./wordpress-WRUKLCZR.js"),
109
- workos: () => import("./workos-ZDW4EHS4.js"),
110
- zhihu: () => import("./zhihu-4VI67CWU.js")
12
+ airtable: () => import("./airtable-DMJEEGJP.js"),
13
+ alt_text_generator_ai: () => import("./alt_text_generator_ai-RELFQ5FV.js"),
14
+ amap: () => import("./amap-YSYEACKQ.js"),
15
+ anthropic: () => import("./anthropic-D5X5GSYE.js"),
16
+ apify: () => import("./apify-5NVFU3IZ.js"),
17
+ brave_search: () => import("./brave_search-X557FMGO.js"),
18
+ circleci: () => import("./circleci-3P3QTUX2.js"),
19
+ clerk: () => import("./clerk-GNMZQ2MY.js"),
20
+ cloudflare_dns: () => import("./cloudflare_dns-VWZH3ZTR.js"),
21
+ cohere: () => import("./cohere-C7QVIIMG.js"),
22
+ confluence: () => import("./confluence-52I37IUT.js"),
23
+ convertapi: () => import("./convertapi-3TRJ3WEO.js"),
24
+ currencyapi: () => import("./currencyapi-LWEANWVI.js"),
25
+ deepseek: () => import("./deepseek-5U24YG4P.js"),
26
+ docker_hub: () => import("./docker_hub-CMISLRSE.js"),
27
+ dropbox: () => import("./dropbox-TW4QN6FT.js"),
28
+ dub: () => import("./dub-EFXGI5UH.js"),
29
+ e2b: () => import("./e2b-PHM63OVF.js"),
30
+ exa: () => import("./exa-DYOQWURR.js"),
31
+ fal_ai: () => import("./fal_ai-VJPMCNRH.js"),
32
+ feishu: () => import("./feishu-TFIZXPIN.js"),
33
+ feishu_custom_bot: () => import("./feishu_custom_bot-ADSE23KU.js"),
34
+ figma: () => import("./figma-4AK47AYY.js"),
35
+ firehydrant: () => import("./firehydrant-RGPTW4EA.js"),
36
+ fixer: () => import("./fixer-OAMF4DKP.js"),
37
+ fly: () => import("./fly-YB4AQD4O.js"),
38
+ front: () => import("./front-6GTVYKUM.js"),
39
+ geocodio: () => import("./geocodio-YRT4K25M.js"),
40
+ ghost: () => import("./ghost-JCW6UIP2.js"),
41
+ github: () => import("./github-CEGVRMNX.js"),
42
+ gmail: () => import("./gmail-JCMJD55P.js"),
43
+ googlecalendar: () => import("./googlecalendar-2EAW4MNM.js"),
44
+ googledocs: () => import("./googledocs-YNKKBM6Q.js"),
45
+ grafana: () => import("./grafana-353VSGXN.js"),
46
+ graphhopper: () => import("./graphhopper-H3IVJNDS.js"),
47
+ ip2proxy: () => import("./ip2proxy-DBGRWH7S.js"),
48
+ ipgeolocation_io: () => import("./ipgeolocation_io-5I2BDVMG.js"),
49
+ ipqualityscore: () => import("./ipqualityscore-ILV7TQCV.js"),
50
+ jina_ai: () => import("./jina_ai-L5BH455V.js"),
51
+ jira: () => import("./jira-IGTILUZA.js"),
52
+ langsmith: () => import("./langsmith-BYRX4AOF.js"),
53
+ lemlist: () => import("./lemlist-ZGNYTIQO.js"),
54
+ linear: () => import("./linear-HLGOWISN.js"),
55
+ logsnag: () => import("./logsnag-5RGTMTU2.js"),
56
+ mattermost: () => import("./mattermost-BONGXVC7.js"),
57
+ mem0: () => import("./mem0-RUVNUPTE.js"),
58
+ memos: () => import("./memos-TED4HI54.js"),
59
+ metabase: () => import("./metabase-ZHXHRHZK.js"),
60
+ mistral_ai: () => import("./mistral_ai-NGP5SHU7.js"),
61
+ mother_duck: () => import("./mother_duck-TKVQM35M.js"),
62
+ ngrok: () => import("./ngrok-BYCUJ7QV.js"),
63
+ notes: () => import("./notes-KXRNNYDW.js"),
64
+ notion: () => import("./notion-2ILYKJOO.js"),
65
+ open_exchange_rates: () => import("./open_exchange_rates-JU4DC6HZ.js"),
66
+ openai: () => import("./openai-6SOT26ZK.js"),
67
+ opengraph_io: () => import("./opengraph_io-ZEFHV2OL.js"),
68
+ openrouter: () => import("./openrouter-R4P7JL5L.js"),
69
+ outline: () => import("./outline-VCTQ5V2X.js"),
70
+ paddle: () => import("./paddle-AZOAKBJS.js"),
71
+ perplexity: () => import("./perplexity-OMRLGVAT.js"),
72
+ pinecone: () => import("./pinecone-DI62W3ZX.js"),
73
+ pipedrive: () => import("./pipedrive-CW7HONYW.js"),
74
+ polar: () => import("./polar-5DRGTXNR.js"),
75
+ posthog: () => import("./posthog-3DTHFCKE.js"),
76
+ postmark: () => import("./postmark-ME2V2XXI.js"),
77
+ prerender: () => import("./prerender-5EAY7GDM.js"),
78
+ pubmed: () => import("./pubmed-GRQUBGVA.js"),
79
+ railway: () => import("./railway-FTM75TMX.js"),
80
+ readwise: () => import("./readwise-IJQGV6IQ.js"),
81
+ render: () => import("./render-TMSPHRTY.js"),
82
+ replicate: () => import("./replicate-RJCMDB7H.js"),
83
+ resend: () => import("./resend-YYN22NIL.js"),
84
+ rootly: () => import("./rootly-7RXE4K7L.js"),
85
+ scrapfly: () => import("./scrapfly-ZJJ6XM4Q.js"),
86
+ scrapingbee: () => import("./scrapingbee-QNGEOD6D.js"),
87
+ screenshot_fyi: () => import("./screenshot_fyi-SPZAABVD.js"),
88
+ semantic_scholar: () => import("./semantic_scholar-SDPVGDDI.js"),
89
+ sentry: () => import("./sentry-SJ5NN4C4.js"),
90
+ shodan: () => import("./shodan-YMGOY7KW.js"),
91
+ shopify: () => import("./shopify-SU5ABP54.js"),
92
+ stripe: () => import("./stripe-JAC425KE.js"),
93
+ supabase: () => import("./supabase-GQ2OFVIL.js"),
94
+ tavily: () => import("./tavily-Y7MDA5CI.js"),
95
+ telegram: () => import("./telegram-OIDT3ZLH.js"),
96
+ telnyx: () => import("./telnyx-4JGMC3K7.js"),
97
+ todoist: () => import("./todoist-O7S2OUGX.js"),
98
+ trello: () => import("./trello-3LDE4TAQ.js"),
99
+ turso: () => import("./turso-MUQ44KCA.js"),
100
+ twilio: () => import("./twilio-VYF3HUU6.js"),
101
+ umami: () => import("./umami-SVQIK26J.js"),
102
+ unsplash: () => import("./unsplash-333XYDCJ.js"),
103
+ upstash_redis: () => import("./upstash_redis-IUM2HDLU.js"),
104
+ uptimerobot: () => import("./uptimerobot-7ZRU2NJV.js"),
105
+ v2ex: () => import("./v2ex-AVSJCQPS.js"),
106
+ vercel: () => import("./vercel-J7RGXNSA.js"),
107
+ wolfram_alpha_api: () => import("./wolfram_alpha_api-6CRVUZOJ.js"),
108
+ wordpress: () => import("./wordpress-THOJLPKA.js"),
109
+ workos: () => import("./workos-ENTGRWF2.js"),
110
+ zhihu: () => import("./zhihu-W2BXICTX.js")
111
111
  };
112
112
 
113
113
  // ../plugins/src/catalog.generated.ts