@tool-bridge/server 0.21.1 → 0.22.1

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-ML2GIGCH.js +790 -0
  3. package/dist/{alt_text_generator_ai-W7O34SNG.js → alt_text_generator_ai-FGYQAF2A.js} +12 -11
  4. package/dist/{amap-VOX4T2AW.js → amap-G7V65NGK.js} +221 -220
  5. package/dist/anthropic-6ZK24TBB.js +203 -0
  6. package/dist/apify-VDGYHP6W.js +248 -0
  7. package/dist/brave_search-TAATLZOS.js +302 -0
  8. package/dist/chunk-2IAI3XQM.js +302 -0
  9. package/dist/chunk-7ISGFRC6.js +161 -0
  10. package/dist/{chunk-E6JCVKW6.js → chunk-BNMLA2RC.js} +3 -3
  11. package/dist/chunk-HA4BGL6C.js +8429 -0
  12. package/dist/{chunk-KMTT3I6D.js → chunk-RMAWSG7E.js} +19172 -25717
  13. package/dist/{chunk-XYBU3WZH.js → chunk-RTW5VRTK.js} +3 -3
  14. package/dist/chunk-U7PTOA3U.js +7320 -0
  15. package/dist/chunk-UY6ANCOY.js +378 -0
  16. package/dist/{chunk-ATK45BXV.js → chunk-X7ZUTKHR.js} +4 -2
  17. package/dist/circleci-BQ2UWXL2.js +389 -0
  18. package/dist/clerk-2JYWQNOI.js +1019 -0
  19. package/dist/cohere-6MI7AQM4.js +185 -0
  20. package/dist/{confluence-B3EWPZVE.js → confluence-6Y6GDETF.js} +105 -104
  21. package/dist/{convertapi-EUWSQYPF.js → convertapi-HBZCSWOX.js} +32 -31
  22. package/dist/{currencyapi-KVTIK3GL.js → currencyapi-337U5TGI.js} +71 -71
  23. package/dist/deepseek-OSPASO7O.js +210 -0
  24. package/dist/docker_hub-3ATQOY5L.js +933 -0
  25. package/dist/dropbox-LSA4GM2Y.js +1305 -0
  26. package/dist/dub-VZPJSPI6.js +680 -0
  27. package/dist/e2b-6SDYQZL2.js +278 -0
  28. package/dist/exa-B6EUYDVP.js +332 -0
  29. package/dist/{fal_ai-23E7JPNT.js → fal_ai-K4Q27IME.js} +81 -80
  30. package/dist/{feishu-7QRIDUV6.js → feishu-4TKXG4SU.js} +528 -572
  31. package/dist/{feishu_custom_bot-TJ4K7QNJ.js → feishu_custom_bot-7CTEAKRB.js} +57 -53
  32. package/dist/figma-OUKSZLD5.js +777 -0
  33. package/dist/firehydrant-7MOYL7QH.js +563 -0
  34. package/dist/{fixer-BWON27UO.js → fixer-H2BV2NO4.js} +34 -33
  35. package/dist/fly-PXKY6PNH.js +469 -0
  36. package/dist/{front-QCGXYEDJ.js → front-UZYIV5DW.js} +104 -104
  37. package/dist/geocodio-NSYO7TFP.js +213 -0
  38. package/dist/ghost-QBKKQQMF.js +338 -0
  39. package/dist/github-ENLSJ4CL.js +5421 -0
  40. package/dist/gmail-KQSDEB47.js +1887 -0
  41. package/dist/googlecalendar-5YCX4SZF.js +2524 -0
  42. package/dist/{googledocs-BUHL4J2H.js → googledocs-SSWIVFKA.js} +341 -340
  43. package/dist/{grafana-GLU2DWF2.js → grafana-TF2LXDQA.js} +221 -220
  44. package/dist/graphhopper-CURBVHYK.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-YNVMTZEM.js} +28 -27
  48. package/dist/ipgeolocation_io-NAU7VJ4J.js +315 -0
  49. package/dist/ipqualityscore-OT63L4TI.js +279 -0
  50. package/dist/{jina_ai-EFBHTBXL.js → jina_ai-6WBMBGWM.js} +23 -23
  51. package/dist/{jira-HQSHAA5K.js → jira-DVDVTHNO.js} +118 -117
  52. package/dist/langsmith-IM5N4YAU.js +593 -0
  53. package/dist/lemlist-277SHUQF.js +289 -0
  54. package/dist/{linear-K7RYFYAD.js → linear-AEPH7B5V.js} +327 -326
  55. package/dist/logsnag-VEWRAGBG.js +150 -0
  56. package/dist/main.js +57 -280
  57. package/dist/{mattermost-S2BRCWLQ.js → mattermost-Q3A2BIZA.js} +59 -58
  58. package/dist/mem0-AXS7GZGI.js +544 -0
  59. package/dist/memos-7TXG4ZTU.js +744 -0
  60. package/dist/{metabase-MMSEPCOF.js → metabase-NSVACWQM.js} +90 -89
  61. package/dist/mistral_ai-YZ52RGD4.js +1196 -0
  62. package/dist/{mother_duck-H7PCQNZ2.js → mother_duck-XLLL6FVL.js} +94 -93
  63. package/dist/ngrok-4O4W3WZW.js +356 -0
  64. package/dist/{notes-PFMKRO33.js → notes-YTB3TJOO.js} +11 -9
  65. package/dist/notion-4W4O7J7V.js +940 -0
  66. package/dist/open_exchange_rates-23QJXVO5.js +215 -0
  67. package/dist/openai-ZS7GLSLH.js +800 -0
  68. package/dist/opengraph_io-PMVH7OYI.js +362 -0
  69. package/dist/openrouter-ONRGFNB6.js +441 -0
  70. package/dist/outline-UCUYZZ7J.js +599 -0
  71. package/dist/paddle-35HTKTUL.js +454 -0
  72. package/dist/perplexity-NVOBYN24.js +220 -0
  73. package/dist/pinecone-55CJY73C.js +571 -0
  74. package/dist/{pipedrive-Y2O7QGFF.js → pipedrive-WMCAKS72.js} +99 -98
  75. package/dist/polar-SM4ZM53B.js +395 -0
  76. package/dist/posthog-NWCXVXNJ.js +3464 -0
  77. package/dist/postmark-QJV5PHUQ.js +427 -0
  78. package/dist/{prerender-MENYM2TY.js → prerender-2W7UT4SC.js} +31 -30
  79. package/dist/{pubmed-GOXUVVH5.js → pubmed-VVV7XYLU.js} +239 -238
  80. package/dist/{railway-V2SID4WV.js → railway-KGI57S3O.js} +118 -117
  81. package/dist/readwise-AGHTQB42.js +470 -0
  82. package/dist/render-O4HBROCK.js +461 -0
  83. package/dist/{replicate-756MXPYX.js → replicate-KWBOMX7D.js} +81 -80
  84. package/dist/{resend-ZKH3BTBI.js → resend-DRH6Y6I4.js} +20 -16
  85. package/dist/rootly-XGCUDW6X.js +336 -0
  86. package/dist/{scrapfly-NSRHFDIQ.js → scrapfly-OIQ3OY6L.js} +62 -61
  87. package/dist/{scrapingbee-OQHLAVEY.js → scrapingbee-OCZO4FHX.js} +56 -56
  88. package/dist/{screenshot_fyi-DVWG3AXC.js → screenshot_fyi-CUNGFZOC.js} +16 -16
  89. package/dist/semantic_scholar-3UJRLKES.js +611 -0
  90. package/dist/{sentry-546MNDJG.js → sentry-5BWVZFJV.js} +208 -207
  91. package/dist/{shodan-C3OON3Z3.js → shodan-HI37CTEW.js} +62 -61
  92. package/dist/shopify-LJ2EV2HH.js +610 -0
  93. package/dist/stripe-3LHMV55K.js +585 -0
  94. package/dist/{supabase-U2SL4D63.js → supabase-H2KPX3Q2.js} +245 -244
  95. package/dist/tavily-FBEWGH3Z.js +326 -0
  96. package/dist/telegram-MYYO3JND.js +1767 -0
  97. package/dist/{telnyx-CXQ4EZUX.js → telnyx-H4ALEGAX.js} +57 -56
  98. package/dist/todoist-OBWICA5Q.js +664 -0
  99. package/dist/trello-GUFUJRWO.js +1080 -0
  100. package/dist/turso-NIAK4UMS.js +416 -0
  101. package/dist/{twilio-4PDBJKWX.js → twilio-K6SLK2CX.js} +70 -69
  102. package/dist/umami-42RS2EPS.js +389 -0
  103. package/dist/unsplash-V7TOTETT.js +351 -0
  104. package/dist/{upstash_redis-G4LQBYHA.js → upstash_redis-AWQMB6Y3.js} +51 -50
  105. package/dist/uptimerobot-AZC2DHOT.js +483 -0
  106. package/dist/v2ex-4TVRNMLS.js +667 -0
  107. package/dist/vercel-DPHTJ3XR.js +1076 -0
  108. package/dist/{wolfram_alpha_api-3G4PUJWB.js → wolfram_alpha_api-XAG7IXBW.js} +36 -35
  109. package/dist/wordpress-KMPKVGUX.js +812 -0
  110. package/dist/workos-PKB2YR7S.js +664 -0
  111. package/dist/zhihu-Y4H4XYPB.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
@@ -0,0 +1,356 @@
1
+ import {
2
+ createAuthedClient
3
+ } from "./chunk-RTW5VRTK.js";
4
+ import "./chunk-BNMLA2RC.js";
5
+ import {
6
+ asJsonObject,
7
+ trimmedText
8
+ } from "./chunk-JXHMDBAY.js";
9
+ import {
10
+ createProviderPlugin,
11
+ upstreamError
12
+ } from "./chunk-X7ZUTKHR.js";
13
+ import "./chunk-7ISGFRC6.js";
14
+ import "./chunk-UY6ANCOY.js";
15
+ import "./chunk-HA4BGL6C.js";
16
+ import "./chunk-U67V476Y.js";
17
+
18
+ // ../plugins/src/ngrok/api.ts
19
+ var SERVICE = "ngrok";
20
+ var http = createAuthedClient({
21
+ baseUrl: "https://api.ngrok.com/",
22
+ service: SERVICE,
23
+ auth: { kind: "bearer" },
24
+ headers: { "accept": "application/json", "ngrok-version": "2" },
25
+ errorMessage: {
26
+ keys: ["msg", "message", "error"],
27
+ fallback: (status) => `ngrok request failed with ${status}`
28
+ }
29
+ });
30
+ async function request(ctx, path, query) {
31
+ const { data } = await http.request(ctx, { path, query, invalidJson: "text" });
32
+ const result = asJsonObject(data);
33
+ if (result === void 0) throw upstreamError(502, "ngrok response was not a JSON object");
34
+ return result;
35
+ }
36
+ function listQuery(input) {
37
+ return [
38
+ ["limit", input.limit],
39
+ ["before_id", trimmedText(input.before_id)],
40
+ ["filter", trimmedText(input.filter)]
41
+ ];
42
+ }
43
+ function listEndpoints(input, ctx) {
44
+ return request(ctx, "endpoints", listQuery(input));
45
+ }
46
+ function getEndpoint(input, ctx) {
47
+ return request(ctx, `endpoints/${encodeURIComponent(input.endpoint_id)}`);
48
+ }
49
+ function listTunnels(input, ctx) {
50
+ return request(ctx, "tunnels", listQuery(input));
51
+ }
52
+ function listTunnelSessions(input, ctx) {
53
+ return request(ctx, "tunnel_sessions", listQuery(input));
54
+ }
55
+ function listReservedDomains(input, ctx) {
56
+ return request(ctx, "reserved_domains", listQuery(input));
57
+ }
58
+ function getReservedDomain(input, ctx) {
59
+ return request(ctx, `reserved_domains/${encodeURIComponent(input.reserved_domain_id)}`);
60
+ }
61
+
62
+ // ../plugins/src/ngrok/schema.ts
63
+ import { z } from "zod/v4";
64
+ var listEndpointsInput = z.strictObject({
65
+ limit: z.int().min(1).max(100).describe("Maximum number of results to return. ngrok accepts values from 1 to 100.").optional(),
66
+ before_id: z.string().min(1).describe("Pagination cursor that requests results created before this resource ID.").optional(),
67
+ filter: z.string().min(1).describe("CEL filter expression used by ngrok to filter the returned resources.").optional()
68
+ }).describe("Input payload for listing ngrok endpoints.");
69
+ var listEndpointsOutput = z.looseObject({
70
+ uri: z.string().describe("Canonical ngrok API URI for the endpoints collection.").optional(),
71
+ endpoints: z.array(z.looseObject({
72
+ id: z.string().describe("Unique endpoint resource identifier.").optional(),
73
+ created_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
74
+ updated_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
75
+ type: z.string().describe("Endpoint type returned by ngrok, such as edge or cloud.").optional(),
76
+ proto: z.string().describe("Protocol served by this endpoint.").optional(),
77
+ public_url: z.string().describe("Public URL currently serving this endpoint.").optional(),
78
+ url: z.string().describe("API URL or frontend URL returned by ngrok for this endpoint.").optional(),
79
+ description: z.string().describe("Human-readable description configured on this endpoint.").optional(),
80
+ metadata: z.string().describe("User-defined metadata attached to this endpoint.").optional(),
81
+ host: z.string().describe("Host portion returned by ngrok for this endpoint.").optional(),
82
+ name: z.string().describe("User-defined endpoint name returned by ngrok.").optional(),
83
+ port: z.int().describe("Port returned by ngrok for this endpoint.").optional(),
84
+ region: z.string().describe("Region identifier returned by ngrok for this endpoint.").optional(),
85
+ scheme: z.string().describe("Scheme returned by ngrok for this endpoint.").optional(),
86
+ bindings: z.array(z.string().describe("Binding value returned by ngrok.")).describe("Bindings configured on this endpoint.").optional(),
87
+ hostport: z.string().describe("Hostport returned by ngrok for this endpoint.").optional(),
88
+ tcp_addr: z.looseObject({
89
+ id: z.string().describe("ngrok resource identifier.").optional(),
90
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
91
+ }).describe("Reference to another ngrok API resource.").optional(),
92
+ principal: z.looseObject({
93
+ id: z.string().describe("ngrok resource identifier.").optional(),
94
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
95
+ }).describe("Reference to another ngrok API resource.").optional(),
96
+ edge: z.looseObject({
97
+ id: z.string().describe("ngrok resource identifier.").optional(),
98
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
99
+ }).describe("Reference to another ngrok API resource.").optional(),
100
+ domain: z.looseObject({
101
+ id: z.string().describe("ngrok resource identifier.").optional(),
102
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
103
+ }).describe("Reference to another ngrok API resource.").optional(),
104
+ tunnel: z.looseObject({
105
+ id: z.string().describe("ngrok resource identifier.").optional(),
106
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
107
+ }).describe("Reference to another ngrok API resource.").optional(),
108
+ tunnel_session: z.looseObject({
109
+ id: z.string().describe("ngrok resource identifier.").optional(),
110
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
111
+ }).describe("Reference to another ngrok API resource.").optional(),
112
+ upstream_url: z.string().describe("Upstream URL forwarded to by this endpoint, when returned.").optional(),
113
+ upstream_protocol: z.string().describe("Upstream protocol used by the ngrok agent, when returned.").optional(),
114
+ traffic_policy: z.string().describe("Traffic policy attached to this endpoint, when returned.").optional(),
115
+ pooling_enabled: z.boolean().describe("Whether pooling is enabled for this endpoint.").optional()
116
+ }).describe("ngrok endpoint object.")).describe("Resources returned by ngrok for this page.").optional(),
117
+ next_page_uri: z.string().describe("URI of the next page, or null when there is no next page.").nullable().optional()
118
+ }).describe("Paginated ngrok endpoints response.");
119
+ var getEndpointInput = z.strictObject({
120
+ endpoint_id: z.string().min(1).describe("Unique identifier of the ngrok endpoint.")
121
+ }).describe("Input payload for fetching one ngrok endpoint by ID.");
122
+ var getEndpointOutput = z.looseObject({
123
+ id: z.string().describe("Unique endpoint resource identifier.").optional(),
124
+ created_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
125
+ updated_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
126
+ type: z.string().describe("Endpoint type returned by ngrok, such as edge or cloud.").optional(),
127
+ proto: z.string().describe("Protocol served by this endpoint.").optional(),
128
+ public_url: z.string().describe("Public URL currently serving this endpoint.").optional(),
129
+ url: z.string().describe("API URL or frontend URL returned by ngrok for this endpoint.").optional(),
130
+ description: z.string().describe("Human-readable description configured on this endpoint.").optional(),
131
+ metadata: z.string().describe("User-defined metadata attached to this endpoint.").optional(),
132
+ host: z.string().describe("Host portion returned by ngrok for this endpoint.").optional(),
133
+ name: z.string().describe("User-defined endpoint name returned by ngrok.").optional(),
134
+ port: z.int().describe("Port returned by ngrok for this endpoint.").optional(),
135
+ region: z.string().describe("Region identifier returned by ngrok for this endpoint.").optional(),
136
+ scheme: z.string().describe("Scheme returned by ngrok for this endpoint.").optional(),
137
+ bindings: z.array(z.string().describe("Binding value returned by ngrok.")).describe("Bindings configured on this endpoint.").optional(),
138
+ hostport: z.string().describe("Hostport returned by ngrok for this endpoint.").optional(),
139
+ tcp_addr: z.looseObject({
140
+ id: z.string().describe("ngrok resource identifier.").optional(),
141
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
142
+ }).describe("Reference to another ngrok API resource.").optional(),
143
+ principal: z.looseObject({
144
+ id: z.string().describe("ngrok resource identifier.").optional(),
145
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
146
+ }).describe("Reference to another ngrok API resource.").optional(),
147
+ edge: z.looseObject({
148
+ id: z.string().describe("ngrok resource identifier.").optional(),
149
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
150
+ }).describe("Reference to another ngrok API resource.").optional(),
151
+ domain: z.looseObject({
152
+ id: z.string().describe("ngrok resource identifier.").optional(),
153
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
154
+ }).describe("Reference to another ngrok API resource.").optional(),
155
+ tunnel: z.looseObject({
156
+ id: z.string().describe("ngrok resource identifier.").optional(),
157
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
158
+ }).describe("Reference to another ngrok API resource.").optional(),
159
+ tunnel_session: z.looseObject({
160
+ id: z.string().describe("ngrok resource identifier.").optional(),
161
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
162
+ }).describe("Reference to another ngrok API resource.").optional(),
163
+ upstream_url: z.string().describe("Upstream URL forwarded to by this endpoint, when returned.").optional(),
164
+ upstream_protocol: z.string().describe("Upstream protocol used by the ngrok agent, when returned.").optional(),
165
+ traffic_policy: z.string().describe("Traffic policy attached to this endpoint, when returned.").optional(),
166
+ pooling_enabled: z.boolean().describe("Whether pooling is enabled for this endpoint.").optional()
167
+ }).describe("ngrok endpoint object.");
168
+ var listTunnelsInput = z.strictObject({
169
+ limit: z.int().min(1).max(100).describe("Maximum number of results to return. ngrok accepts values from 1 to 100.").optional(),
170
+ before_id: z.string().min(1).describe("Pagination cursor that requests results created before this resource ID.").optional()
171
+ }).describe("Input payload for listing ngrok tunnels.");
172
+ var listTunnelsOutput = z.looseObject({
173
+ uri: z.string().describe("Canonical ngrok API URI for the tunnels collection.").optional(),
174
+ tunnels: z.array(z.looseObject({
175
+ id: z.string().describe("Unique tunnel resource identifier.").optional(),
176
+ started_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
177
+ region: z.string().describe("Region where this tunnel is running.").optional(),
178
+ forwards_to: z.string().describe("Upstream address that this tunnel forwards traffic to.").optional(),
179
+ proto: z.string().describe("Tunnel protocol returned by ngrok.").optional(),
180
+ public_url: z.string().describe("Public URL currently serving this tunnel.").optional(),
181
+ metadata: z.string().describe("User-defined metadata attached to this tunnel.").optional(),
182
+ endpoint: z.looseObject({
183
+ id: z.string().describe("ngrok resource identifier.").optional(),
184
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
185
+ }).describe("Reference to another ngrok API resource.").optional(),
186
+ tunnel_session: z.looseObject({
187
+ id: z.string().describe("ngrok resource identifier.").optional(),
188
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
189
+ }).describe("Reference to another ngrok API resource.").optional(),
190
+ backends: z.array(z.looseObject({
191
+ id: z.string().describe("ngrok resource identifier.").optional(),
192
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
193
+ }).describe("Reference to another ngrok API resource.")).describe("Backends attached to this tunnel group, when returned.").optional(),
194
+ labels: z.record(z.string(), z.string().describe("Label value returned by ngrok.")).describe("Label map returned by ngrok for this tunnel.").optional()
195
+ }).describe("ngrok tunnel object.")).describe("Resources returned by ngrok for this page.").optional(),
196
+ next_page_uri: z.string().describe("URI of the next page, or null when there is no next page.").nullable().optional()
197
+ }).describe("Paginated ngrok tunnels response.");
198
+ var listTunnelSessionsInput = z.strictObject({
199
+ limit: z.int().min(1).max(100).describe("Maximum number of results to return. ngrok accepts values from 1 to 100.").optional(),
200
+ before_id: z.string().min(1).describe("Pagination cursor that requests results created before this resource ID.").optional(),
201
+ filter: z.string().min(1).describe("CEL filter expression used by ngrok to filter the returned resources.").optional()
202
+ }).describe("Input payload for listing ngrok tunnel sessions.");
203
+ var listTunnelSessionsOutput = z.looseObject({
204
+ uri: z.string().describe("Canonical ngrok API URI for the tunnel_sessions collection.").optional(),
205
+ tunnel_sessions: z.array(z.looseObject({
206
+ id: z.string().describe("Unique tunnel session resource identifier.").optional(),
207
+ uri: z.string().describe("Canonical ngrok API URI for this tunnel session.").optional(),
208
+ agent_version: z.string().describe("ngrok agent version serving this session.").optional(),
209
+ credential: z.looseObject({
210
+ id: z.string().describe("ngrok resource identifier.").optional(),
211
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
212
+ }).describe("Reference to another ngrok API resource.").optional(),
213
+ ip: z.string().describe("Source IP address of the tunnel session.").optional(),
214
+ os: z.string().describe("Operating system reported by the ngrok agent.").optional(),
215
+ region: z.string().describe("ngrok region where this session is connected.").optional(),
216
+ started_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
217
+ transport: z.string().describe("Transport protocol used by this tunnel session.").optional(),
218
+ metadata: z.string().describe("User-defined metadata attached to this session.").optional()
219
+ }).describe("ngrok tunnel session object.")).describe("Resources returned by ngrok for this page.").optional(),
220
+ next_page_uri: z.string().describe("URI of the next page, or null when there is no next page.").nullable().optional()
221
+ }).describe("Paginated ngrok tunnel sessions response.");
222
+ var listReservedDomainsInput = z.strictObject({
223
+ limit: z.int().min(1).max(100).describe("Maximum number of results to return. ngrok accepts values from 1 to 100.").optional(),
224
+ before_id: z.string().min(1).describe("Pagination cursor that requests results created before this resource ID.").optional(),
225
+ filter: z.string().min(1).describe("CEL filter expression used by ngrok to filter the returned resources.").optional()
226
+ }).describe("Input payload for listing ngrok reserved domains.");
227
+ var listReservedDomainsOutput = z.looseObject({
228
+ uri: z.string().describe("Canonical ngrok API URI for the reserved_domains collection.").optional(),
229
+ reserved_domains: z.array(z.looseObject({
230
+ id: z.string().describe("Unique reserved domain resource identifier.").optional(),
231
+ uri: z.string().describe("Canonical ngrok API URI for this reserved domain.").optional(),
232
+ created_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
233
+ domain: z.string().describe("Hostname reserved on the ngrok account.").optional(),
234
+ region: z.string().describe("Deprecated region field returned by ngrok, when present.").optional(),
235
+ metadata: z.string().describe("User-defined metadata attached to this reserved domain.").optional(),
236
+ description: z.string().describe("Human-readable description configured on this reserved domain.").optional(),
237
+ certificate: z.looseObject({
238
+ id: z.string().describe("ngrok resource identifier.").optional(),
239
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
240
+ }).describe("Reference to another ngrok API resource.").optional(),
241
+ cname_target: z.string().describe("DNS CNAME target for this reserved domain.").optional(),
242
+ acme_challenge_cname_target: z.string().describe("DNS CNAME target used for ACME validation, when returned.").optional(),
243
+ resolves_to: z.array(z.looseObject({
244
+ value: z.string().describe("Resolver target value returned by ngrok.").optional()
245
+ }).describe("ngrok reserved domain resolve target.")).describe("Resolver targets configured on this reserved domain, when returned.").optional(),
246
+ certificate_management_policy: z.looseObject({
247
+ authority: z.string().describe("Certificate authority used by automatic management.").optional(),
248
+ private_key_type: z.string().describe("Private key type used by automatic management.").optional()
249
+ }).describe("ngrok reserved domain certificate management policy.").optional(),
250
+ certificate_management_status: z.looseObject({
251
+ renews_at: z.string().describe("Timestamp when the managed certificate renews, when returned.").optional(),
252
+ provisioning_job: z.looseObject({
253
+ msg: z.string().describe("Status or error message returned for the certificate job.").optional(),
254
+ error_code: z.string().describe("Certificate job error code returned by ngrok, when present.").optional(),
255
+ retries_at: z.string().describe("Timestamp when ngrok will retry the certificate job, when present.").optional(),
256
+ started_at: z.string().describe("Timestamp in RFC 3339 format.").optional()
257
+ }).describe("ngrok reserved domain certificate provisioning job.").optional()
258
+ }).describe("ngrok reserved domain certificate management status.").optional()
259
+ }).describe("ngrok reserved domain object.")).describe("Resources returned by ngrok for this page.").optional(),
260
+ next_page_uri: z.string().describe("URI of the next page, or null when there is no next page.").nullable().optional()
261
+ }).describe("Paginated ngrok reserved domains response.");
262
+ var getReservedDomainInput = z.strictObject({
263
+ reserved_domain_id: z.string().min(1).describe("Unique identifier of the ngrok reserved domain.")
264
+ }).describe("Input payload for fetching one ngrok reserved domain by ID.");
265
+ var getReservedDomainOutput = z.looseObject({
266
+ id: z.string().describe("Unique reserved domain resource identifier.").optional(),
267
+ uri: z.string().describe("Canonical ngrok API URI for this reserved domain.").optional(),
268
+ created_at: z.string().describe("Timestamp in RFC 3339 format.").optional(),
269
+ domain: z.string().describe("Hostname reserved on the ngrok account.").optional(),
270
+ region: z.string().describe("Deprecated region field returned by ngrok, when present.").optional(),
271
+ metadata: z.string().describe("User-defined metadata attached to this reserved domain.").optional(),
272
+ description: z.string().describe("Human-readable description configured on this reserved domain.").optional(),
273
+ certificate: z.looseObject({
274
+ id: z.string().describe("ngrok resource identifier.").optional(),
275
+ uri: z.string().describe("Canonical ngrok API URI for this resource.").optional()
276
+ }).describe("Reference to another ngrok API resource.").optional(),
277
+ cname_target: z.string().describe("DNS CNAME target for this reserved domain.").optional(),
278
+ acme_challenge_cname_target: z.string().describe("DNS CNAME target used for ACME validation, when returned.").optional(),
279
+ resolves_to: z.array(z.looseObject({
280
+ value: z.string().describe("Resolver target value returned by ngrok.").optional()
281
+ }).describe("ngrok reserved domain resolve target.")).describe("Resolver targets configured on this reserved domain, when returned.").optional(),
282
+ certificate_management_policy: z.looseObject({
283
+ authority: z.string().describe("Certificate authority used by automatic management.").optional(),
284
+ private_key_type: z.string().describe("Private key type used by automatic management.").optional()
285
+ }).describe("ngrok reserved domain certificate management policy.").optional(),
286
+ certificate_management_status: z.looseObject({
287
+ renews_at: z.string().describe("Timestamp when the managed certificate renews, when returned.").optional(),
288
+ provisioning_job: z.looseObject({
289
+ msg: z.string().describe("Status or error message returned for the certificate job.").optional(),
290
+ error_code: z.string().describe("Certificate job error code returned by ngrok, when present.").optional(),
291
+ retries_at: z.string().describe("Timestamp when ngrok will retry the certificate job, when present.").optional(),
292
+ started_at: z.string().describe("Timestamp in RFC 3339 format.").optional()
293
+ }).describe("ngrok reserved domain certificate provisioning job.").optional()
294
+ }).describe("ngrok reserved domain certificate management status.").optional()
295
+ }).describe("ngrok reserved domain object.");
296
+ var ngrokActions = {
297
+ list_endpoints: {
298
+ description: "List active ngrok endpoints for the current account, with optional pagination and CEL filtering.",
299
+ effect: "read",
300
+ inputSchema: listEndpointsInput,
301
+ outputSchema: z.toJSONSchema(listEndpointsOutput, { io: "output", unrepresentable: "any" })
302
+ },
303
+ get_endpoint: {
304
+ description: "Fetch one ngrok endpoint by ID and return the upstream endpoint object.",
305
+ effect: "read",
306
+ inputSchema: getEndpointInput,
307
+ outputSchema: z.toJSONSchema(getEndpointOutput, { io: "output", unrepresentable: "any" })
308
+ },
309
+ list_tunnels: {
310
+ description: "List online ngrok tunnels for the current account with pagination support.",
311
+ effect: "read",
312
+ inputSchema: listTunnelsInput,
313
+ outputSchema: z.toJSONSchema(listTunnelsOutput, { io: "output", unrepresentable: "any" })
314
+ },
315
+ list_tunnel_sessions: {
316
+ description: "List online ngrok tunnel sessions for the current account with pagination and CEL filtering.",
317
+ effect: "read",
318
+ inputSchema: listTunnelSessionsInput,
319
+ outputSchema: z.toJSONSchema(listTunnelSessionsOutput, { io: "output", unrepresentable: "any" })
320
+ },
321
+ list_reserved_domains: {
322
+ description: "List reserved ngrok domains for the current account with pagination and CEL filtering.",
323
+ effect: "read",
324
+ inputSchema: listReservedDomainsInput,
325
+ outputSchema: z.toJSONSchema(listReservedDomainsOutput, { io: "output", unrepresentable: "any" })
326
+ },
327
+ get_reserved_domain: {
328
+ description: "Fetch one ngrok reserved domain by ID and return the upstream domain object.",
329
+ effect: "read",
330
+ inputSchema: getReservedDomainInput,
331
+ outputSchema: z.toJSONSchema(getReservedDomainOutput, { io: "output", unrepresentable: "any" })
332
+ }
333
+ };
334
+
335
+ // ../plugins/src/ngrok/index.ts
336
+ function createNgrokPlugin() {
337
+ return createProviderPlugin({
338
+ description: "ngrok",
339
+ actions: ngrokActions,
340
+ // 上游的 credentialValidators 打的就是 /endpoints?limit=1,对应 list_endpoints。
341
+ credentialProbe: "list_endpoints",
342
+ handlers: {
343
+ list_endpoints: listEndpoints,
344
+ get_endpoint: getEndpoint,
345
+ list_tunnels: listTunnels,
346
+ list_tunnel_sessions: listTunnelSessions,
347
+ list_reserved_domains: listReservedDomains,
348
+ get_reserved_domain: getReservedDomain
349
+ }
350
+ });
351
+ }
352
+ var ngrok_default = createNgrokPlugin();
353
+ export {
354
+ createNgrokPlugin,
355
+ ngrok_default as default
356
+ };
@@ -1,11 +1,13 @@
1
1
  import {
2
- TBError,
3
- createPlugin,
4
- external_exports
5
- } from "./chunk-UZM2RXZH.js";
2
+ createPlugin
3
+ } from "./chunk-UY6ANCOY.js";
4
+ import {
5
+ TBError
6
+ } from "./chunk-HA4BGL6C.js";
6
7
  import "./chunk-U67V476Y.js";
7
8
 
8
9
  // ../plugins/src/notes/index.ts
10
+ import { z } from "zod/v4";
9
11
  function uriOf(mountPath, path) {
10
12
  return `node://${mountPath ?? "notes"}/${path}`;
11
13
  }
@@ -41,10 +43,10 @@ function createNotesPlugin() {
41
43
  "create_note",
42
44
  {
43
45
  description: "\u65B0\u5EFA\u4E00\u6761\u7B14\u8BB0,\u8FD4\u56DE\u5B83\u5728 context export \u91CC\u7684\u8DEF\u5F84",
44
- inputSchema: external_exports.object({
45
- title: external_exports.string().min(1).describe("\u7B14\u8BB0\u6807\u9898"),
46
- body: external_exports.string().describe("Markdown \u6B63\u6587"),
47
- tags: external_exports.array(external_exports.string()).optional().describe("\u6807\u7B7E")
46
+ inputSchema: z.object({
47
+ title: z.string().min(1).describe("\u7B14\u8BB0\u6807\u9898"),
48
+ body: z.string().describe("Markdown \u6B63\u6587"),
49
+ tags: z.array(z.string()).optional().describe("\u6807\u7B7E")
48
50
  }),
49
51
  effect: "write"
50
52
  },
@@ -66,7 +68,7 @@ function createNotesPlugin() {
66
68
  "count_notes",
67
69
  {
68
70
  description: "\u7EDF\u8BA1\u7B14\u8BB0\u6761\u6570(\u53EF\u6309\u6807\u7B7E\u8FC7\u6EE4)",
69
- inputSchema: external_exports.object({ tag: external_exports.string().optional().describe("\u53EA\u6570\u5E26\u6B64\u6807\u7B7E\u7684") }),
71
+ inputSchema: z.object({ tag: z.string().optional().describe("\u53EA\u6570\u5E26\u6B64\u6807\u7B7E\u7684") }),
70
72
  effect: "read"
71
73
  },
72
74
  ({ tag }, ctx) => ({