@tool-bridge/server 0.21.1 → 0.23.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 (178) hide show
  1. package/dist/admin.js +170 -0
  2. package/dist/airtable-VMQVXLHK.js +790 -0
  3. package/dist/{alt_text_generator_ai-W7O34SNG.js → alt_text_generator_ai-FTWY4RU4.js} +12 -11
  4. package/dist/{amap-VOX4T2AW.js → amap-OK5VBHYC.js} +221 -220
  5. package/dist/anthropic-S67AZFZ3.js +203 -0
  6. package/dist/apify-ZE6MYQI3.js +248 -0
  7. package/dist/brave_search-TG2M2KOD.js +302 -0
  8. package/dist/chunk-2JNAI4OC.js +161 -0
  9. package/dist/{chunk-KMTT3I6D.js → chunk-4XJPN3DY.js} +19392 -26136
  10. package/dist/chunk-5ICRY3VU.js +8432 -0
  11. package/dist/chunk-7CTWGTDU.js +302 -0
  12. package/dist/chunk-BADVCN6K.js +378 -0
  13. package/dist/{chunk-XYBU3WZH.js → chunk-TDAWLMDE.js} +3 -3
  14. package/dist/chunk-U7PTOA3U.js +7320 -0
  15. package/dist/{chunk-E6JCVKW6.js → chunk-VWRUGUSU.js} +3 -3
  16. package/dist/{chunk-ATK45BXV.js → chunk-WJHG6OK7.js} +4 -2
  17. package/dist/circleci-3L3WJVSK.js +389 -0
  18. package/dist/clerk-EZPF2V7T.js +1019 -0
  19. package/dist/cohere-U27DPO64.js +185 -0
  20. package/dist/{confluence-B3EWPZVE.js → confluence-G2KL6ERH.js} +105 -104
  21. package/dist/{convertapi-EUWSQYPF.js → convertapi-L4CLJ2M3.js} +32 -31
  22. package/dist/{currencyapi-KVTIK3GL.js → currencyapi-YPYXG7YY.js} +71 -71
  23. package/dist/deepseek-6HT6WF3M.js +210 -0
  24. package/dist/docker_hub-LPE3PCVB.js +933 -0
  25. package/dist/dropbox-V56ABHTA.js +1305 -0
  26. package/dist/dub-6OKQ7MHT.js +680 -0
  27. package/dist/e2b-JS2U2QFU.js +278 -0
  28. package/dist/exa-DPWVYXSP.js +332 -0
  29. package/dist/{fal_ai-23E7JPNT.js → fal_ai-DK6Y27ZF.js} +81 -80
  30. package/dist/{feishu-7QRIDUV6.js → feishu-K7EGSRF3.js} +528 -572
  31. package/dist/{feishu_custom_bot-TJ4K7QNJ.js → feishu_custom_bot-2JUGFYNG.js} +57 -53
  32. package/dist/figma-FT5I7ITD.js +777 -0
  33. package/dist/firehydrant-EIKLKHX2.js +563 -0
  34. package/dist/{fixer-BWON27UO.js → fixer-U5QXIAKD.js} +34 -33
  35. package/dist/fly-T3JYFZ2M.js +469 -0
  36. package/dist/{front-QCGXYEDJ.js → front-D72MGVOR.js} +104 -104
  37. package/dist/geocodio-BOTD5TI5.js +213 -0
  38. package/dist/ghost-KYP7SZGB.js +338 -0
  39. package/dist/github-AGMZT3VY.js +5421 -0
  40. package/dist/gmail-BLJNJOBG.js +1887 -0
  41. package/dist/googlecalendar-GTHWNCF6.js +2524 -0
  42. package/dist/{googledocs-BUHL4J2H.js → googledocs-6EEDMEBQ.js} +341 -340
  43. package/dist/{grafana-GLU2DWF2.js → grafana-GMW6EKSQ.js} +221 -220
  44. package/dist/graphhopper-6OLGBDGB.js +325 -0
  45. package/dist/index.d.ts +1132 -332
  46. package/dist/index.js +31 -14
  47. package/dist/{ip2proxy-EZ64Y4ZH.js → ip2proxy-4QN42E6T.js} +28 -27
  48. package/dist/ipgeolocation_io-SK4XKDA2.js +315 -0
  49. package/dist/ipqualityscore-6ANBPXKT.js +279 -0
  50. package/dist/{jina_ai-EFBHTBXL.js → jina_ai-IHPSVRM5.js} +23 -23
  51. package/dist/{jira-HQSHAA5K.js → jira-46KKM4LC.js} +118 -117
  52. package/dist/langsmith-JZA345I5.js +593 -0
  53. package/dist/lemlist-43IV7DK6.js +289 -0
  54. package/dist/{linear-K7RYFYAD.js → linear-5LFH7XNL.js} +327 -326
  55. package/dist/logsnag-5RMYAHIL.js +150 -0
  56. package/dist/main.js +57 -280
  57. package/dist/{mattermost-S2BRCWLQ.js → mattermost-XFL6SHGG.js} +59 -58
  58. package/dist/mem0-NYO4DTP6.js +544 -0
  59. package/dist/memos-37MPQOLV.js +744 -0
  60. package/dist/{metabase-MMSEPCOF.js → metabase-KYBKZFMG.js} +90 -89
  61. package/dist/mistral_ai-6PL3K4PM.js +1196 -0
  62. package/dist/{mother_duck-H7PCQNZ2.js → mother_duck-2NH7W5M5.js} +94 -93
  63. package/dist/ngrok-UO6CDYCA.js +356 -0
  64. package/dist/{notes-PFMKRO33.js → notes-I3P32WP4.js} +11 -9
  65. package/dist/notion-BEAJFUOE.js +940 -0
  66. package/dist/open_exchange_rates-CMF62JB4.js +215 -0
  67. package/dist/openai-IHOMKVND.js +800 -0
  68. package/dist/opengraph_io-ZQ2FGLHX.js +362 -0
  69. package/dist/openrouter-HXLW3NR5.js +441 -0
  70. package/dist/outline-ELCP4NEU.js +599 -0
  71. package/dist/paddle-O77LALVN.js +454 -0
  72. package/dist/perplexity-JCU654QV.js +220 -0
  73. package/dist/pinecone-W5W4LRKL.js +571 -0
  74. package/dist/{pipedrive-Y2O7QGFF.js → pipedrive-ITMJLLPZ.js} +99 -98
  75. package/dist/polar-R33XU4L3.js +395 -0
  76. package/dist/posthog-JVNTOLTV.js +3464 -0
  77. package/dist/postmark-6SBG7HWV.js +427 -0
  78. package/dist/{prerender-MENYM2TY.js → prerender-GPNKTNFC.js} +31 -30
  79. package/dist/{pubmed-GOXUVVH5.js → pubmed-UP6ZEEIH.js} +239 -238
  80. package/dist/{railway-V2SID4WV.js → railway-KWEWXHTY.js} +118 -117
  81. package/dist/readwise-BLATSMC3.js +470 -0
  82. package/dist/render-QYRVIXII.js +461 -0
  83. package/dist/{replicate-756MXPYX.js → replicate-JYTWH4NF.js} +81 -80
  84. package/dist/{resend-ZKH3BTBI.js → resend-L5N75SZM.js} +20 -16
  85. package/dist/rootly-MHCPEQ26.js +336 -0
  86. package/dist/{scrapfly-NSRHFDIQ.js → scrapfly-PTPGYSJM.js} +62 -61
  87. package/dist/{scrapingbee-OQHLAVEY.js → scrapingbee-JN6UH5PY.js} +56 -56
  88. package/dist/{screenshot_fyi-DVWG3AXC.js → screenshot_fyi-4QRVSV55.js} +16 -16
  89. package/dist/semantic_scholar-LRSWA2GE.js +611 -0
  90. package/dist/{sentry-546MNDJG.js → sentry-2G6PF5W6.js} +208 -207
  91. package/dist/{shodan-C3OON3Z3.js → shodan-WKKPP5C6.js} +62 -61
  92. package/dist/shopify-64YDK5T2.js +610 -0
  93. package/dist/stripe-QAIGGOTF.js +585 -0
  94. package/dist/{supabase-U2SL4D63.js → supabase-WHTGR6ND.js} +245 -244
  95. package/dist/tavily-QIXCDDWO.js +326 -0
  96. package/dist/telegram-E6G7CWI6.js +1767 -0
  97. package/dist/{telnyx-CXQ4EZUX.js → telnyx-ZDVVS7PK.js} +57 -56
  98. package/dist/todoist-DMYF3G7J.js +664 -0
  99. package/dist/trello-HY2RYIRP.js +1080 -0
  100. package/dist/turso-HAQWMGRP.js +416 -0
  101. package/dist/{twilio-4PDBJKWX.js → twilio-MLXYPHJE.js} +70 -69
  102. package/dist/umami-DZHBLPVG.js +389 -0
  103. package/dist/unsplash-GS2OPXKE.js +351 -0
  104. package/dist/{upstash_redis-G4LQBYHA.js → upstash_redis-XMXWTNAJ.js} +51 -50
  105. package/dist/uptimerobot-TF5WRZ4G.js +483 -0
  106. package/dist/v2ex-2BVXAPDF.js +667 -0
  107. package/dist/vercel-YMJGQYJE.js +1076 -0
  108. package/dist/{wolfram_alpha_api-3G4PUJWB.js → wolfram_alpha_api-I56SXWFZ.js} +36 -35
  109. package/dist/wordpress-R7TDFZ2P.js +812 -0
  110. package/dist/workos-HDNHWVMS.js +664 -0
  111. package/dist/zhihu-LX6AGGDS.js +254 -0
  112. package/package.json +18 -9
  113. package/dist/airtable-LLZDFN7M.js +0 -789
  114. package/dist/anthropic-G23NN3X5.js +0 -202
  115. package/dist/apify-Y3SS734K.js +0 -247
  116. package/dist/brave_search-ZC7OAPSZ.js +0 -301
  117. package/dist/chunk-R6P4XAE5.js +0 -248
  118. package/dist/chunk-U7B6DS2O.js +0 -977
  119. package/dist/chunk-UZM2RXZH.js +0 -23436
  120. package/dist/circleci-3BAX5FCG.js +0 -388
  121. package/dist/clerk-6LEM6TNU.js +0 -1019
  122. package/dist/cloudflare_dns-KINYTJUD.js +0 -588
  123. package/dist/cohere-XCJ5AJ6B.js +0 -185
  124. package/dist/deepseek-PC5YGNC5.js +0 -209
  125. package/dist/docker_hub-C3MA5FU6.js +0 -932
  126. package/dist/dropbox-XBV7Z2IR.js +0 -1304
  127. package/dist/dub-LDOFG3HC.js +0 -679
  128. package/dist/e2b-JMCPSVBW.js +0 -277
  129. package/dist/exa-RAK7O7RD.js +0 -331
  130. package/dist/figma-E6IX5DTH.js +0 -773
  131. package/dist/firehydrant-ZBLPQREE.js +0 -562
  132. package/dist/fly-ZH3HFCZJ.js +0 -468
  133. package/dist/geocodio-YGNI7DA4.js +0 -212
  134. package/dist/ghost-EVSGKH2Q.js +0 -337
  135. package/dist/github-MA2BGRCJ.js +0 -5420
  136. package/dist/gmail-E5E6AADE.js +0 -1886
  137. package/dist/googlecalendar-BTLFPXTD.js +0 -2523
  138. package/dist/graphhopper-WSMB3TCD.js +0 -324
  139. package/dist/ipgeolocation_io-AA7HAS22.js +0 -315
  140. package/dist/ipqualityscore-BHJXVTJT.js +0 -277
  141. package/dist/langsmith-5W6SCT6F.js +0 -592
  142. package/dist/lemlist-HJWH6UMK.js +0 -288
  143. package/dist/logsnag-4KFOHL37.js +0 -150
  144. package/dist/mem0-CAW43CIC.js +0 -543
  145. package/dist/memos-TWEGPKFM.js +0 -740
  146. package/dist/mistral_ai-64BGZQHP.js +0 -1195
  147. package/dist/ngrok-GQCUGZKJ.js +0 -356
  148. package/dist/notion-DQWZWP4N.js +0 -936
  149. package/dist/open_exchange_rates-QMMD735E.js +0 -214
  150. package/dist/openai-W6PX32NZ.js +0 -799
  151. package/dist/opengraph_io-HNDBXYNW.js +0 -361
  152. package/dist/openrouter-JJYMEAUL.js +0 -437
  153. package/dist/outline-MCBNQZYY.js +0 -595
  154. package/dist/paddle-D2SKLUDN.js +0 -453
  155. package/dist/perplexity-XIFMKUAE.js +0 -219
  156. package/dist/pinecone-HUFTALV2.js +0 -570
  157. package/dist/polar-TYTOMOSR.js +0 -394
  158. package/dist/posthog-43JAR3VW.js +0 -3463
  159. package/dist/postmark-KL2QJYSG.js +0 -426
  160. package/dist/readwise-CI4GIMMJ.js +0 -469
  161. package/dist/render-SUBJ6YRZ.js +0 -460
  162. package/dist/rootly-CD2LJHPI.js +0 -336
  163. package/dist/semantic_scholar-T4A252KW.js +0 -610
  164. package/dist/shopify-Y2HN2MCQ.js +0 -609
  165. package/dist/stripe-VE3CD3AY.js +0 -584
  166. package/dist/tavily-KCZHK6HE.js +0 -326
  167. package/dist/telegram-3URFBCMY.js +0 -1766
  168. package/dist/todoist-HNPWNYTD.js +0 -663
  169. package/dist/trello-3W2MIXRP.js +0 -1079
  170. package/dist/turso-2EQF7C2Z.js +0 -415
  171. package/dist/umami-5REN7TGP.js +0 -388
  172. package/dist/unsplash-EIXL424F.js +0 -350
  173. package/dist/uptimerobot-KNJ3EYLY.js +0 -482
  174. package/dist/v2ex-RHJ234PZ.js +0 -666
  175. package/dist/vercel-AS6NCIC7.js +0 -1075
  176. package/dist/wordpress-KNDAAUV7.js +0 -811
  177. package/dist/workos-R6UITSJ7.js +0 -663
  178. package/dist/zhihu-AGK4HILK.js +0 -253
@@ -1,437 +0,0 @@
1
- import {
2
- createAuthedClient
3
- } from "./chunk-XYBU3WZH.js";
4
- import "./chunk-E6JCVKW6.js";
5
- import {
6
- asJsonObject,
7
- compactDefined,
8
- trimmedText
9
- } from "./chunk-JXHMDBAY.js";
10
- import {
11
- createProviderPlugin,
12
- upstreamError
13
- } from "./chunk-ATK45BXV.js";
14
- import "./chunk-U7B6DS2O.js";
15
- import {
16
- TBError,
17
- external_exports
18
- } from "./chunk-UZM2RXZH.js";
19
- import "./chunk-U67V476Y.js";
20
-
21
- // ../plugins/src/openrouter/api.ts
22
- var SERVICE = "openrouter";
23
- var API_BASE = "https://openrouter.ai/api/v1";
24
- var HEADER_INPUT_KEYS = ["httpReferer", "xTitle"];
25
- function requireRecord(value, label) {
26
- const result = asJsonObject(value);
27
- if (result === void 0) {
28
- throw new TBError("unavailable", `OpenRouter \u7684${label}\u4E0D\u662F\u5BF9\u8C61`, { retryable: true });
29
- }
30
- return result;
31
- }
32
- function stripHeaderInputs(input) {
33
- return Object.fromEntries(
34
- Object.entries(input).filter(([key, value]) => !HEADER_INPUT_KEYS.includes(key) && value !== void 0)
35
- );
36
- }
37
- function assertStreamingDisabled(input) {
38
- if (input.stream === true) {
39
- throw new TBError("invalid_argument", "stream=true \u4E0D\u88AB\u652F\u6301:\u672C action \u53EA\u8FD4\u56DE\u4E00\u6B21\u6027\u54CD\u5E94");
40
- }
41
- }
42
- function legacyTools(value) {
43
- if (!Array.isArray(value)) return void 0;
44
- return value.map((tool) => ({ type: "function", function: tool }));
45
- }
46
- function legacyToolChoice(value) {
47
- if (value === "none" || value === "auto") return value;
48
- const name = trimmedText(asJsonObject(value)?.name);
49
- if (name === void 0) return void 0;
50
- return { type: "function", function: { name } };
51
- }
52
- function errorMessage(payload) {
53
- const body = asJsonObject(payload);
54
- if (body === void 0) return void 0;
55
- return trimmedText(asJsonObject(body.error)?.message) ?? trimmedText(body.message);
56
- }
57
- var http = createAuthedClient({
58
- baseUrl: `${API_BASE}/`,
59
- service: SERVICE,
60
- auth: { kind: "bearer" },
61
- // 非 JSON 错误体**不回显原文**(bodyKind 门控),与标准提取的 string 取文语义不同,整段覆写。
62
- mapError: ({ bodyKind, data, status }) => upstreamError(
63
- status,
64
- bodyKind === "json" ? errorMessage(data) ?? `OpenRouter \u8FD4\u56DE HTTP ${status}` : `OpenRouter \u8FD4\u56DE HTTP ${status}`
65
- )
66
- });
67
- async function request(ctx, input) {
68
- const hasBody = input.body !== void 0;
69
- const headers = new Headers();
70
- const referer = trimmedText(input.headerSource?.httpReferer);
71
- const title = trimmedText(input.headerSource?.xTitle);
72
- if (referer !== void 0) headers.set("HTTP-Referer", referer);
73
- if (title !== void 0) headers.set("X-Title", title);
74
- const response = await http.request(ctx, {
75
- method: input.method ?? "GET",
76
- path: input.path,
77
- query: Object.entries(input.query ?? {}),
78
- headers,
79
- ...hasBody ? { json: compactDefined(input.body ?? {}) } : {},
80
- responseType: "json",
81
- invalidJson: "text"
82
- });
83
- const contentType = response.headers.get("content-type") ?? "";
84
- const isText = contentType.includes("xml") || contentType.includes("rss") || contentType.startsWith("text/");
85
- if (input.allowText === true && response.bodyKind === "invalid-json" && isText) {
86
- return { rss: String(response.data) };
87
- }
88
- if (response.bodyKind !== "json") {
89
- throw new TBError("unavailable", "OpenRouter \u8FD4\u56DE\u4E86\u975E JSON \u54CD\u5E94", { retryable: true });
90
- }
91
- return requireRecord(response.data, "\u54CD\u5E94");
92
- }
93
- function createChatCompletion(input, ctx) {
94
- assertStreamingDisabled(input);
95
- const body = stripHeaderInputs(input);
96
- return request(ctx, {
97
- method: "POST",
98
- path: "/chat/completions",
99
- headerSource: input,
100
- body: compactDefined({
101
- ...body,
102
- // 给了新字段就不翻译 legacy 的那两个(新的优先),翻完旧字段一律不发。
103
- tools: body.tools ?? legacyTools(input.functions),
104
- tool_choice: body.tool_choice ?? legacyToolChoice(input.function_call),
105
- functions: void 0,
106
- function_call: void 0
107
- })
108
- });
109
- }
110
- function createCoinbaseCharge(input, ctx) {
111
- return request(ctx, {
112
- method: "POST",
113
- path: "/credits/coinbase",
114
- headerSource: input,
115
- body: stripHeaderInputs(input)
116
- });
117
- }
118
- function createMessage(input, ctx) {
119
- assertStreamingDisabled(input);
120
- return request(ctx, {
121
- method: "POST",
122
- path: "/messages",
123
- headerSource: input,
124
- body: stripHeaderInputs(input)
125
- });
126
- }
127
- function getCredits(_input, ctx) {
128
- return request(ctx, { path: "/credits" });
129
- }
130
- function getCurrentKey(input, ctx) {
131
- return request(ctx, { path: "/key", headerSource: input });
132
- }
133
- function getGeneration(input, ctx) {
134
- return request(ctx, { path: "/generation", query: { id: input.id } });
135
- }
136
- function getModelsCount(input, ctx) {
137
- return request(ctx, {
138
- path: "/models/count",
139
- headerSource: input,
140
- query: { output_modalities: trimmedText(input.outputModalities) }
141
- });
142
- }
143
- function listAvailableModels(input, ctx) {
144
- return request(ctx, {
145
- path: "/models",
146
- // 入参名是驼峰,query 名是下划线 —— 这一层改名是上游的,不是笔误。
147
- query: {
148
- category: trimmedText(input.category),
149
- supported_parameters: trimmedText(input.supportedParameters),
150
- output_modalities: trimmedText(input.outputModalities),
151
- use_rss: input.useRss,
152
- use_rss_chat_links: input.useRssChatLinks
153
- },
154
- allowText: input.useRss === true
155
- });
156
- }
157
- function listEmbeddingModels(input, ctx) {
158
- return request(ctx, { path: "/embeddings/models", headerSource: input });
159
- }
160
- function listModelEndpoints(input, ctx) {
161
- const path = `/models/${encodeURIComponent(input.author)}/${encodeURIComponent(input.slug)}/endpoints`;
162
- return request(ctx, { path });
163
- }
164
- function listProviders(_input, ctx) {
165
- return request(ctx, { path: "/providers" });
166
- }
167
- function listUserModels(input, ctx) {
168
- return request(ctx, { path: "/models/user", headerSource: input });
169
- }
170
- function listZdrEndpoints(input, ctx) {
171
- return request(ctx, { path: "/endpoints/zdr", headerSource: input });
172
- }
173
-
174
- // ../plugins/src/openrouter/schema.handwritten.ts
175
- var createCoinbaseChargeInput = external_exports.strictObject({
176
- amount: external_exports.number().gt(0).describe("The USD amount to top up."),
177
- sender: external_exports.string().min(1).describe("The wallet address that initiated the payment."),
178
- chain_id: external_exports.union([
179
- external_exports.literal(1).describe("Ethereum mainnet."),
180
- external_exports.literal(137).describe("Polygon."),
181
- external_exports.literal(8453).describe("Base.")
182
- ]).describe("The chain ID used to initiate the payment."),
183
- httpReferer: external_exports.string().describe(
184
- "The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics."
185
- ).optional(),
186
- xTitle: external_exports.string().describe(
187
- "The application display name sent in the X-Title header for OpenRouter console display."
188
- ).optional()
189
- }).describe("Input parameters when creating a Coinbase deposit order.");
190
- var createCoinbaseChargeOutput = external_exports.strictObject({
191
- data: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional()
192
- }).describe("Returns the standard response for Coinbase charge results.");
193
-
194
- // ../plugins/src/openrouter/schema.ts
195
- var createChatCompletionInput = external_exports.looseObject({
196
- model: external_exports.string().min(1).describe("The model ID to use."),
197
- messages: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).min(1).describe("An ordered list of conversation messages."),
198
- n: external_exports.int().min(1).describe("The number of choices to generate.").optional(),
199
- stop: external_exports.union([external_exports.string().min(1).describe("A single stop sequence."), external_exports.array(external_exports.string().min(1).describe("A stop sequence.")).min(1).describe("Multiple stop sequences.")]).describe("Stop sequences for generation.").optional(),
200
- user: external_exports.string().describe("The end user's unique identifier.").optional(),
201
- top_p: external_exports.number().min(0).max(1).describe("Nucleus sampling parameter.").optional(),
202
- stream: external_exports.boolean().describe("Whether to request a streaming response. Connector actions only support false or omitted.").optional(),
203
- functions: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional(),
204
- function_call: external_exports.union([external_exports.enum(["none", "auto"]), external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")]).describe("Legacy function calling strategy converted to tool_choice at execution time.").optional(),
205
- logit_bias: external_exports.record(external_exports.string(), external_exports.number().describe("The bias value for this token.")).describe("Token bias map.").optional(),
206
- max_tokens: external_exports.int().min(1).describe("The maximum number of output tokens.").optional(),
207
- max_completion_tokens: external_exports.int().min(1).describe("New max output token field, taking precedence over max_tokens.").optional(),
208
- temperature: external_exports.number().min(0).max(2).describe("Sampling temperature.").optional(),
209
- presence_penalty: external_exports.number().min(-2).max(2).describe("Presence penalty.").optional(),
210
- frequency_penalty: external_exports.number().min(-2).max(2).describe("Frequency penalty.").optional(),
211
- logprobs: external_exports.boolean().describe("Whether to return token-level probabilities.").optional(),
212
- top_logprobs: external_exports.int().min(0).max(20).describe("The number of top logprobs to return.").optional(),
213
- tools: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional(),
214
- tool_choice: external_exports.union([external_exports.enum(["none", "auto", "required"]), external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")]).describe("Tool selection strategy.").optional(),
215
- response_format: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
216
- modalities: external_exports.array(external_exports.string().min(1)).describe("List of output modalities to request.").optional(),
217
- models: external_exports.array(external_exports.string().min(1)).describe("Candidate fallback model IDs.").optional(),
218
- metadata: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
219
- provider: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
220
- plugins: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional(),
221
- service_tier: external_exports.string().describe("Requested service tier.").optional(),
222
- session_id: external_exports.string().describe("Session ID used to associate requests.").optional(),
223
- parallel_tool_calls: external_exports.boolean().describe("Whether to allow parallel tool calls.").optional(),
224
- stream_options: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
225
- reasoning: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
226
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
227
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
228
- }).describe("Input parameters when creating an OpenRouter chat completion.");
229
- var createChatCompletionOutput = external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.");
230
- var createMessageInput = external_exports.looseObject({
231
- model: external_exports.string().min(1).describe("The model ID to use."),
232
- max_tokens: external_exports.int().min(1).describe("The maximum number of output tokens."),
233
- messages: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).min(1).describe("An ordered list of Anthropic-format messages."),
234
- user: external_exports.string().describe("The end user's unique identifier.").optional(),
235
- tools: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional(),
236
- top_k: external_exports.int().min(0).describe("Top-k sampling parameter.").optional(),
237
- top_p: external_exports.number().min(0).max(1).describe("Nucleus sampling parameter.").optional(),
238
- models: external_exports.array(external_exports.string().min(1)).describe("Candidate fallback model IDs.").optional(),
239
- stream: external_exports.boolean().describe("Whether to request a streaming response. Connector actions only support false or omitted.").optional(),
240
- system: external_exports.union([external_exports.string().describe("System prompt text."), external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).min(1).describe("Structured system prompt content blocks.")]).describe("System prompt content.").optional(),
241
- plugins: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional(),
242
- metadata: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
243
- output_config: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
244
- provider: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
245
- service_tier: external_exports.string().describe("Requested service tier.").optional(),
246
- session_id: external_exports.string().describe("Session ID used to associate requests.").optional(),
247
- stop_sequences: external_exports.array(external_exports.string().min(1)).describe("Stop sequences for generation.").optional(),
248
- temperature: external_exports.number().min(0).max(2).describe("Sampling temperature.").optional(),
249
- thinking: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional(),
250
- tool_choice: external_exports.union([external_exports.enum(["auto", "any", "none"]), external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")]).describe("Tool selection strategy.").optional(),
251
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
252
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
253
- }).describe("Input parameters when creating an OpenRouter Anthropic Messages request.");
254
- var createMessageOutput = external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.");
255
- var getCreditsInput = external_exports.strictObject({}).describe("This action requires no additional input parameters.");
256
- var getCreditsOutput = external_exports.strictObject({
257
- data: external_exports.looseObject({
258
- total_credits: external_exports.number().describe("Cumulative purchased credits.").optional(),
259
- total_usage: external_exports.number().describe("Cumulative credits used.").optional()
260
- }).describe("Credit overview information.").optional()
261
- }).describe("Returns the standard response for an OpenRouter credit overview.");
262
- var getCurrentKeyInput = external_exports.strictObject({
263
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
264
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
265
- }).describe("Input parameters when querying the current API key information.");
266
- var getCurrentKeyOutput = external_exports.strictObject({
267
- data: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional()
268
- }).describe("Returns metadata for the current OpenRouter API key.");
269
- var getGenerationInput = external_exports.strictObject({
270
- id: external_exports.string().min(1).describe("The generation ID to query.")
271
- }).describe("Input parameters when querying generation metadata.");
272
- var getGenerationOutput = external_exports.strictObject({
273
- data: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional()
274
- }).describe("Returns the standard response with generation metadata.");
275
- var getModelsCountInput = external_exports.strictObject({
276
- outputModalities: external_exports.string().min(1).describe("Filter statistics by output modality, such as text, image, audio, embeddings, or all.").optional(),
277
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
278
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
279
- }).describe("Input parameters when getting the number of models.");
280
- var getModelsCountOutput = external_exports.strictObject({
281
- data: external_exports.strictObject({
282
- count: external_exports.int().describe("The current number of eligible models.").optional()
283
- }).describe("Model count result.").optional()
284
- }).describe("Returns the standard response for the number of models.");
285
- var listAvailableModelsInput = external_exports.strictObject({
286
- category: external_exports.string().min(1).describe("Filter the model list by use case classification.").optional(),
287
- supportedParameters: external_exports.string().min(1).describe("Filter the model list by supported parameter names. Multiple parameters can be separated by commas.").optional(),
288
- outputModalities: external_exports.string().min(1).describe("Filter the list of models by output modality, such as text, image, audio, embeddings, or all.").optional(),
289
- useRss: external_exports.boolean().describe("Whether to return RSS XML instead of JSON.").optional(),
290
- useRssChatLinks: external_exports.boolean().describe("Whether to use the chat page link instead of the model details page link when returning RSS.").optional()
291
- }).describe("Input parameters when listing available models for OpenRouter.");
292
- var listAvailableModelsOutput = external_exports.union([external_exports.strictObject({
293
- data: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional()
294
- }).describe("Standard OpenRouter response that returns a list of models."), external_exports.strictObject({
295
- rss: external_exports.string().describe("RSS XML string returned when useRss=true.").optional()
296
- }).describe("RSS output format.")]).describe("Response when listing available OpenRouter models.");
297
- var listEmbeddingModelsInput = external_exports.strictObject({
298
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
299
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
300
- }).describe("Input parameters when listing embedding models.");
301
- var listEmbeddingModelsOutput = external_exports.strictObject({
302
- data: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional()
303
- }).describe("Standard OpenRouter response that returns a list of models.");
304
- var listModelEndpointsInput = external_exports.strictObject({
305
- author: external_exports.string().min(1).describe("Model author or organization name."),
306
- slug: external_exports.string().min(1).describe("Model slug.")
307
- }).describe("Input parameters when listing endpoints for a specific model.");
308
- var listModelEndpointsOutput = external_exports.strictObject({
309
- data: external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.").optional()
310
- }).describe("Returns the standard response for the specified model endpoints.");
311
- var listProvidersInput = external_exports.strictObject({}).describe("This action requires no additional input parameters.");
312
- var listProvidersOutput = external_exports.strictObject({
313
- data: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional()
314
- }).describe("Returns a standard response with a list of providers.");
315
- var listUserModelsInput = external_exports.strictObject({
316
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
317
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
318
- }).describe("Input parameters when listing models visible to the current user.");
319
- var listUserModelsOutput = external_exports.strictObject({
320
- data: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional()
321
- }).describe("Standard OpenRouter response that returns a list of models.");
322
- var listZdrEndpointsInput = external_exports.strictObject({
323
- httpReferer: external_exports.string().describe("The application URL sent in the HTTP-Referer header for OpenRouter attribution and analytics.").optional(),
324
- xTitle: external_exports.string().describe("The application display name sent in the X-Title header for OpenRouter console display.").optional()
325
- }).describe("Input parameters when listing ZDR endpoints.");
326
- var listZdrEndpointsOutput = external_exports.strictObject({
327
- data: external_exports.array(external_exports.looseObject({}).describe("A JSON object returned by OpenRouter.")).describe("A list of JSON objects returned by OpenRouter.").optional()
328
- }).describe("Returns the standard response for ZDR endpoints.");
329
- var openrouterActions = {
330
- create_chat_completion: {
331
- description: "Create an OpenRouter chat completion through the OpenAI-compatible `/chat/completions` endpoint.",
332
- effect: "write",
333
- inputSchema: createChatCompletionInput,
334
- outputSchema: external_exports.toJSONSchema(createChatCompletionOutput, { io: "output", unrepresentable: "any" })
335
- },
336
- create_coinbase_charge: {
337
- description: "Call OpenRouter's deprecated Coinbase charge endpoint for credits purchases. The upstream endpoint is currently deprecated and may return 410 Gone.",
338
- effect: "write",
339
- inputSchema: createCoinbaseChargeInput,
340
- outputSchema: external_exports.toJSONSchema(createCoinbaseChargeOutput, { io: "output", unrepresentable: "any" })
341
- },
342
- create_message: {
343
- description: "Create an OpenRouter Anthropic-format message through the `/messages` endpoint.",
344
- effect: "write",
345
- inputSchema: createMessageInput,
346
- outputSchema: external_exports.toJSONSchema(createMessageOutput, { io: "output", unrepresentable: "any" })
347
- },
348
- get_credits: {
349
- description: "Get the authenticated OpenRouter credit balance summary.",
350
- effect: "read",
351
- inputSchema: getCreditsInput,
352
- outputSchema: external_exports.toJSONSchema(getCreditsOutput, { io: "output", unrepresentable: "any" })
353
- },
354
- get_current_key: {
355
- description: "Get metadata for the currently authenticated OpenRouter API key.",
356
- effect: "read",
357
- inputSchema: getCurrentKeyInput,
358
- outputSchema: external_exports.toJSONSchema(getCurrentKeyOutput, { io: "output", unrepresentable: "any" })
359
- },
360
- get_generation: {
361
- description: "Get request and usage metadata for a specific OpenRouter generation.",
362
- effect: "read",
363
- inputSchema: getGenerationInput,
364
- outputSchema: external_exports.toJSONSchema(getGenerationOutput, { io: "output", unrepresentable: "any" })
365
- },
366
- get_models_count: {
367
- description: "Get the total number of OpenRouter models, optionally filtered by output modalities.",
368
- effect: "read",
369
- inputSchema: getModelsCountInput,
370
- outputSchema: external_exports.toJSONSchema(getModelsCountOutput, { io: "output", unrepresentable: "any" })
371
- },
372
- list_available_models: {
373
- description: "List the available OpenRouter models, or return the RSS feed when requested.",
374
- effect: "read",
375
- inputSchema: listAvailableModelsInput,
376
- outputSchema: external_exports.toJSONSchema(listAvailableModelsOutput, { io: "output", unrepresentable: "any" })
377
- },
378
- list_embedding_models: {
379
- description: "List the embedding models available through OpenRouter.",
380
- effect: "read",
381
- inputSchema: listEmbeddingModelsInput,
382
- outputSchema: external_exports.toJSONSchema(listEmbeddingModelsOutput, { io: "output", unrepresentable: "any" })
383
- },
384
- list_model_endpoints: {
385
- description: "List the currently available endpoints for a specific OpenRouter model.",
386
- effect: "read",
387
- inputSchema: listModelEndpointsInput,
388
- outputSchema: external_exports.toJSONSchema(listModelEndpointsOutput, { io: "output", unrepresentable: "any" })
389
- },
390
- list_providers: {
391
- description: "List the model providers currently available through OpenRouter.",
392
- effect: "read",
393
- inputSchema: listProvidersInput,
394
- outputSchema: external_exports.toJSONSchema(listProvidersOutput, { io: "output", unrepresentable: "any" })
395
- },
396
- list_user_models: {
397
- description: "List models filtered by the current user's OpenRouter routing preferences, privacy settings, and guardrails.",
398
- effect: "read",
399
- inputSchema: listUserModelsInput,
400
- outputSchema: external_exports.toJSONSchema(listUserModelsOutput, { io: "output", unrepresentable: "any" })
401
- },
402
- list_zdr_endpoints: {
403
- description: "Preview the OpenRouter endpoints that remain available under Zero Data Retention.",
404
- effect: "read",
405
- inputSchema: listZdrEndpointsInput,
406
- outputSchema: external_exports.toJSONSchema(listZdrEndpointsOutput, { io: "output", unrepresentable: "any" })
407
- }
408
- };
409
-
410
- // ../plugins/src/openrouter/index.ts
411
- function createOpenrouterPlugin() {
412
- return createProviderPlugin({
413
- description: "OpenRouter",
414
- actions: openrouterActions,
415
- credentialProbe: "get_current_key",
416
- handlers: {
417
- create_chat_completion: createChatCompletion,
418
- create_coinbase_charge: createCoinbaseCharge,
419
- create_message: createMessage,
420
- get_credits: getCredits,
421
- get_current_key: getCurrentKey,
422
- get_generation: getGeneration,
423
- get_models_count: getModelsCount,
424
- list_available_models: listAvailableModels,
425
- list_embedding_models: listEmbeddingModels,
426
- list_model_endpoints: listModelEndpoints,
427
- list_providers: listProviders,
428
- list_user_models: listUserModels,
429
- list_zdr_endpoints: listZdrEndpoints
430
- }
431
- });
432
- }
433
- var openrouter_default = createOpenrouterPlugin();
434
- export {
435
- createOpenrouterPlugin,
436
- openrouter_default as default
437
- };