@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,416 @@
1
+ import {
2
+ createAuthedClient
3
+ } from "./chunk-RTW5VRTK.js";
4
+ import "./chunk-BNMLA2RC.js";
5
+ import {
6
+ asJsonObject,
7
+ compactDefined,
8
+ trimmedText
9
+ } from "./chunk-JXHMDBAY.js";
10
+ import {
11
+ createProviderPlugin,
12
+ upstreamError
13
+ } from "./chunk-X7ZUTKHR.js";
14
+ import "./chunk-7ISGFRC6.js";
15
+ import "./chunk-UY6ANCOY.js";
16
+ import {
17
+ TBError
18
+ } from "./chunk-HA4BGL6C.js";
19
+ import "./chunk-U67V476Y.js";
20
+
21
+ // ../plugins/src/turso/api.ts
22
+ var SERVICE = "turso";
23
+ var API_BASE = "https://api.turso.tech";
24
+ var http = createAuthedClient({
25
+ baseUrl: `${API_BASE}/`,
26
+ service: SERVICE,
27
+ auth: { kind: "bearer" },
28
+ headers: { accept: "application/json" },
29
+ errorMessage: {
30
+ // Turso 的错误消息散落在五六个键里,按上游的顺序找。
31
+ keys: ["message", "error", "detail", "title", "error.message", "error.detail"],
32
+ fallback: (status) => `Turso request failed with ${status}`
33
+ },
34
+ mapTransportError: ({ message }) => upstreamError(
35
+ 502,
36
+ message === void 0 ? "Turso request failed" : `Turso request failed: ${message}`
37
+ )
38
+ });
39
+ function requireText(value, field) {
40
+ const result = trimmedText(value);
41
+ if (result === void 0) throw new TBError("invalid_argument", `${field} is required.`);
42
+ return result;
43
+ }
44
+ function responseError(message) {
45
+ return new TBError("unavailable", message, { retryable: true });
46
+ }
47
+ function normalizeResource(raw) {
48
+ return compactDefined({
49
+ slug: trimmedText(raw.slug),
50
+ name: trimmedText(raw.name),
51
+ type: trimmedText(raw.type),
52
+ location: trimmedText(raw.location),
53
+ uuid: trimmedText(raw.uuid),
54
+ group: trimmedText(raw.group),
55
+ hostname: trimmedText(raw.hostname),
56
+ code: trimmedText(raw.code),
57
+ raw
58
+ });
59
+ }
60
+ function normalizeItems(items) {
61
+ return items.flatMap((item) => {
62
+ const fields = asJsonObject(item);
63
+ return fields === void 0 ? [] : [normalizeResource(fields)];
64
+ });
65
+ }
66
+ function resourceList(payload, keys) {
67
+ if (Array.isArray(payload)) return normalizeItems(payload);
68
+ const fields = asJsonObject(payload);
69
+ if (fields === void 0) throw responseError("Turso returned an invalid list response");
70
+ for (const key of [...keys, "data"]) {
71
+ const value = fields[key];
72
+ if (Array.isArray(value)) return normalizeItems(value);
73
+ }
74
+ throw responseError("Turso list response is missing items");
75
+ }
76
+ function singleResource(payload, keys) {
77
+ const fields = asJsonObject(payload);
78
+ if (fields === void 0) throw responseError("Turso returned an invalid resource response");
79
+ for (const key of [...keys, "data"]) {
80
+ const value = asJsonObject(fields[key]);
81
+ if (value !== void 0) return normalizeResource(value);
82
+ }
83
+ return normalizeResource(fields);
84
+ }
85
+ async function request(ctx, input) {
86
+ const response = await http.request(ctx, {
87
+ method: input.method,
88
+ path: input.path,
89
+ ...input.body === void 0 ? {} : { json: input.body },
90
+ invalidJson: "text"
91
+ });
92
+ if (response.bodyKind === "empty") return {};
93
+ return response.bodyKind === "json" ? response.data : { message: response.data };
94
+ }
95
+ function organizationPath(organizationSlug) {
96
+ return `/v1/organizations/${encodeURIComponent(requireText(organizationSlug, "organizationSlug"))}`;
97
+ }
98
+ function extensions(value) {
99
+ if (value === void 0 || value === "all") return value;
100
+ return value.map((item) => requireText(item, "extensions"));
101
+ }
102
+ async function listOrganizations(_input, ctx) {
103
+ const payload = await request(ctx, { method: "GET", path: "/v1/organizations" });
104
+ return { organizations: resourceList(payload, ["organizations"]) };
105
+ }
106
+ async function getOrganization(input, ctx) {
107
+ const payload = await request(ctx, { method: "GET", path: organizationPath(input.organizationSlug) });
108
+ return { organization: singleResource(payload, ["organization"]) };
109
+ }
110
+ async function listLocations(_input, ctx) {
111
+ const payload = await request(ctx, { method: "GET", path: "/v1/locations" });
112
+ return { locations: resourceList(payload, ["locations", "regions"]) };
113
+ }
114
+ async function listGroups(input, ctx) {
115
+ const payload = await request(ctx, { method: "GET", path: `${organizationPath(input.organizationSlug)}/groups` });
116
+ return { groups: resourceList(payload, ["groups"]) };
117
+ }
118
+ async function getGroup(input, ctx) {
119
+ const name = encodeURIComponent(requireText(input.name, "name"));
120
+ const payload = await request(ctx, {
121
+ method: "GET",
122
+ path: `${organizationPath(input.organizationSlug)}/groups/${name}`
123
+ });
124
+ return { group: singleResource(payload, ["group"]) };
125
+ }
126
+ async function createGroup(input, ctx) {
127
+ const payload = await request(ctx, {
128
+ method: "POST",
129
+ path: `${organizationPath(input.organizationSlug)}/groups`,
130
+ body: compactDefined({
131
+ name: requireText(input.name, "name"),
132
+ location: requireText(input.location, "location"),
133
+ extensions: extensions(input.extensions)
134
+ })
135
+ });
136
+ return { group: singleResource(payload, ["group"]) };
137
+ }
138
+ async function listDatabases(input, ctx) {
139
+ const payload = await request(ctx, { method: "GET", path: `${organizationPath(input.organizationSlug)}/databases` });
140
+ return { databases: resourceList(payload, ["databases"]) };
141
+ }
142
+ async function getDatabase(input, ctx) {
143
+ const name = encodeURIComponent(requireText(input.name, "name"));
144
+ const payload = await request(ctx, {
145
+ method: "GET",
146
+ path: `${organizationPath(input.organizationSlug)}/databases/${name}`
147
+ });
148
+ return { database: singleResource(payload, ["database"]) };
149
+ }
150
+ async function createDatabase(input, ctx) {
151
+ const payload = await request(ctx, {
152
+ method: "POST",
153
+ path: `${organizationPath(input.organizationSlug)}/databases`,
154
+ // 上游这里没走 compactObject:两个字段都是必填,给不出就该在断言处炸。
155
+ body: {
156
+ name: requireText(input.name, "name"),
157
+ group: requireText(input.group, "group")
158
+ }
159
+ });
160
+ return { database: singleResource(payload, ["database"]) };
161
+ }
162
+ async function deleteDatabase(input, ctx) {
163
+ const name = encodeURIComponent(requireText(input.name, "name"));
164
+ await request(ctx, {
165
+ method: "DELETE",
166
+ path: `${organizationPath(input.organizationSlug)}/databases/${name}`
167
+ });
168
+ return { deleted: true };
169
+ }
170
+
171
+ // ../plugins/src/turso/schema.ts
172
+ import { z } from "zod/v4";
173
+ var listOrganizationsInput = z.strictObject({}).describe("The input payload for listing Turso organizations.");
174
+ var listOrganizationsOutput = z.strictObject({
175
+ organizations: z.array(z.strictObject({
176
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
177
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
178
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
179
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
180
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
181
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
182
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
183
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
184
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
185
+ }).describe("A normalized Turso Platform API resource.")).describe("The organizations visible to the current API token.")
186
+ }).describe("The organizations returned by the Turso Platform API.");
187
+ var getOrganizationInput = z.strictObject({
188
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path.")
189
+ }).describe("The input payload for retrieving one organization.");
190
+ var getOrganizationOutput = z.strictObject({
191
+ organization: z.strictObject({
192
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
193
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
194
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
195
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
196
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
197
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
198
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
199
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
200
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
201
+ }).describe("A normalized Turso Platform API resource.")
202
+ }).describe("The organization returned by the Turso Platform API.");
203
+ var listLocationsInput = z.strictObject({}).describe("The input payload for listing Turso locations.");
204
+ var listLocationsOutput = z.strictObject({
205
+ locations: z.array(z.strictObject({
206
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
207
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
208
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
209
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
210
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
211
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
212
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
213
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
214
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
215
+ }).describe("A normalized Turso Platform API resource.")).describe("The available Turso locations.")
216
+ }).describe("The locations returned by the Turso Platform API.");
217
+ var listGroupsInput = z.strictObject({
218
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path.")
219
+ }).describe("The input payload for listing Turso groups.");
220
+ var listGroupsOutput = z.strictObject({
221
+ groups: z.array(z.strictObject({
222
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
223
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
224
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
225
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
226
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
227
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
228
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
229
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
230
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
231
+ }).describe("A normalized Turso Platform API resource.")).describe("The Turso groups belonging to the organization.")
232
+ }).describe("The Turso groups returned for one organization.");
233
+ var getGroupInput = z.strictObject({
234
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path."),
235
+ name: z.string().min(1).describe("The Turso group name.")
236
+ }).describe("The input payload for retrieving one Turso group.");
237
+ var getGroupOutput = z.strictObject({
238
+ group: z.strictObject({
239
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
240
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
241
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
242
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
243
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
244
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
245
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
246
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
247
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
248
+ }).describe("A normalized Turso Platform API resource.")
249
+ }).describe("The Turso group returned by the Platform API.");
250
+ var createGroupInput = z.strictObject({
251
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path."),
252
+ name: z.string().min(1).describe("The Turso group name."),
253
+ location: z.string().min(1).describe("The primary Turso location code for the group."),
254
+ extensions: z.union([z.enum(["all"]).describe("Enable every supported extension."), z.array(z.string().min(1).describe("One Turso extension name.")).min(1).describe("The explicit extension names to enable for new databases in the group.")]).describe("The extensions to enable for new databases in the group.").optional()
255
+ }).describe("The input payload for creating a Turso group.");
256
+ var createGroupOutput = z.strictObject({
257
+ group: z.strictObject({
258
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
259
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
260
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
261
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
262
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
263
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
264
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
265
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
266
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
267
+ }).describe("A normalized Turso Platform API resource.")
268
+ }).describe("The newly created Turso group.");
269
+ var listDatabasesInput = z.strictObject({
270
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path.")
271
+ }).describe("The input payload for listing Turso databases.");
272
+ var listDatabasesOutput = z.strictObject({
273
+ databases: z.array(z.strictObject({
274
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
275
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
276
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
277
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
278
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
279
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
280
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
281
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
282
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
283
+ }).describe("A normalized Turso Platform API resource.")).describe("The Turso databases belonging to the organization.")
284
+ }).describe("The Turso databases returned for one organization.");
285
+ var getDatabaseInput = z.strictObject({
286
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path."),
287
+ name: z.string().min(1).describe("The Turso database name.")
288
+ }).describe("The input payload for retrieving one Turso database.");
289
+ var getDatabaseOutput = z.strictObject({
290
+ database: z.strictObject({
291
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
292
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
293
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
294
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
295
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
296
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
297
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
298
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
299
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
300
+ }).describe("A normalized Turso Platform API resource.")
301
+ }).describe("The Turso database returned by the Platform API.");
302
+ var createDatabaseInput = z.strictObject({
303
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path."),
304
+ name: z.string().min(1).describe("The Turso database name."),
305
+ group: z.string().min(1).describe("The Turso group where the database should be created.")
306
+ }).describe("The input payload for creating a Turso database.");
307
+ var createDatabaseOutput = z.strictObject({
308
+ database: z.strictObject({
309
+ slug: z.string().min(1).describe("The resource slug when Turso returns one.").optional(),
310
+ name: z.string().min(1).describe("The resource name when Turso returns one.").optional(),
311
+ type: z.string().min(1).describe("The resource type when Turso returns one.").optional(),
312
+ location: z.string().min(1).describe("The location code when Turso returns one.").optional(),
313
+ uuid: z.string().min(1).describe("The UUID when Turso returns one.").optional(),
314
+ group: z.string().min(1).describe("The group name when Turso returns one.").optional(),
315
+ hostname: z.string().min(1).describe("The database hostname when Turso returns one.").optional(),
316
+ code: z.string().min(1).describe("The location code when Turso returns one.").optional(),
317
+ raw: z.looseObject({}).describe("The raw Turso resource object returned by the Platform API.")
318
+ }).describe("A normalized Turso Platform API resource.")
319
+ }).describe("The newly created Turso database.");
320
+ var deleteDatabaseInput = z.strictObject({
321
+ organizationSlug: z.string().min(1).describe("The organization slug used in the Turso API path."),
322
+ name: z.string().min(1).describe("The Turso database name.")
323
+ }).describe("The input payload for deleting one Turso database.");
324
+ var deleteDatabaseOutput = z.strictObject({
325
+ deleted: z.boolean().describe("Whether the connector finished the delete request successfully.")
326
+ }).describe("The normalized delete result returned by the connector.");
327
+ var tursoActions = {
328
+ list_organizations: {
329
+ description: "List organizations visible to the current Turso Platform API token.",
330
+ effect: "read",
331
+ inputSchema: listOrganizationsInput,
332
+ outputSchema: z.toJSONSchema(listOrganizationsOutput, { io: "output", unrepresentable: "any" })
333
+ },
334
+ get_organization: {
335
+ description: "Retrieve one Turso organization by slug.",
336
+ effect: "read",
337
+ inputSchema: getOrganizationInput,
338
+ outputSchema: z.toJSONSchema(getOrganizationOutput, { io: "output", unrepresentable: "any" })
339
+ },
340
+ list_locations: {
341
+ description: "List available Turso locations that can host groups.",
342
+ effect: "read",
343
+ inputSchema: listLocationsInput,
344
+ outputSchema: z.toJSONSchema(listLocationsOutput, { io: "output", unrepresentable: "any" })
345
+ },
346
+ list_groups: {
347
+ description: "List Turso groups for one organization.",
348
+ effect: "read",
349
+ inputSchema: listGroupsInput,
350
+ outputSchema: z.toJSONSchema(listGroupsOutput, { io: "output", unrepresentable: "any" })
351
+ },
352
+ get_group: {
353
+ description: "Retrieve one Turso group by name within an organization.",
354
+ effect: "read",
355
+ inputSchema: getGroupInput,
356
+ outputSchema: z.toJSONSchema(getGroupOutput, { io: "output", unrepresentable: "any" })
357
+ },
358
+ create_group: {
359
+ description: "Create a Turso group in one organization with a primary location.",
360
+ effect: "write",
361
+ inputSchema: createGroupInput,
362
+ outputSchema: z.toJSONSchema(createGroupOutput, { io: "output", unrepresentable: "any" })
363
+ },
364
+ list_databases: {
365
+ description: "List Turso databases for one organization.",
366
+ effect: "read",
367
+ inputSchema: listDatabasesInput,
368
+ outputSchema: z.toJSONSchema(listDatabasesOutput, { io: "output", unrepresentable: "any" })
369
+ },
370
+ get_database: {
371
+ description: "Retrieve one Turso database by name within an organization.",
372
+ effect: "read",
373
+ inputSchema: getDatabaseInput,
374
+ outputSchema: z.toJSONSchema(getDatabaseOutput, { io: "output", unrepresentable: "any" })
375
+ },
376
+ create_database: {
377
+ description: "Create a Turso database in one organization and group.",
378
+ effect: "write",
379
+ inputSchema: createDatabaseInput,
380
+ outputSchema: z.toJSONSchema(createDatabaseOutput, { io: "output", unrepresentable: "any" })
381
+ },
382
+ delete_database: {
383
+ description: "Delete a Turso database from one organization.",
384
+ effect: "destructive",
385
+ inputSchema: deleteDatabaseInput,
386
+ outputSchema: z.toJSONSchema(deleteDatabaseOutput, { io: "output", unrepresentable: "any" })
387
+ }
388
+ };
389
+
390
+ // ../plugins/src/turso/index.ts
391
+ function createTursoPlugin() {
392
+ return createProviderPlugin({
393
+ description: "Turso",
394
+ actions: tursoActions,
395
+ // 上游 credentialValidators 打的 `/v1/auth/validate` 没有对应 action;`list_organizations`
396
+ // 同样只读、无必填入参,且同样要求 Platform token 有效,拿它当挂载时的凭证探针。
397
+ credentialProbe: "list_organizations",
398
+ handlers: {
399
+ list_organizations: listOrganizations,
400
+ get_organization: getOrganization,
401
+ list_locations: listLocations,
402
+ list_groups: listGroups,
403
+ get_group: getGroup,
404
+ create_group: createGroup,
405
+ list_databases: listDatabases,
406
+ get_database: getDatabase,
407
+ create_database: createDatabase,
408
+ delete_database: deleteDatabase
409
+ }
410
+ });
411
+ }
412
+ var turso_default = createTursoPlugin();
413
+ export {
414
+ createTursoPlugin,
415
+ turso_default as default
416
+ };
@@ -7,15 +7,15 @@ import {
7
7
  createProviderPlugin,
8
8
  requireCredential,
9
9
  upstreamError
10
- } from "./chunk-ATK45BXV.js";
10
+ } from "./chunk-X7ZUTKHR.js";
11
11
  import {
12
12
  guardedFetch
13
- } from "./chunk-U7B6DS2O.js";
13
+ } from "./chunk-7ISGFRC6.js";
14
+ import "./chunk-UY6ANCOY.js";
14
15
  import {
15
16
  TBError,
16
- external_exports,
17
17
  isTBError
18
- } from "./chunk-UZM2RXZH.js";
18
+ } from "./chunk-HA4BGL6C.js";
19
19
  import "./chunk-U67V476Y.js";
20
20
 
21
21
  // ../plugins/src/twilio/api.ts
@@ -175,107 +175,108 @@ async function sendMessage(input, ctx) {
175
175
  }
176
176
 
177
177
  // ../plugins/src/twilio/schema.ts
178
- var getAccountInput = external_exports.strictObject({}).describe("No input is required for this action.");
179
- var getAccountOutput = external_exports.strictObject({
180
- accountSid: external_exports.string().describe("The Twilio account SID."),
181
- friendlyName: external_exports.string().describe("The friendly name of the Twilio account.").nullable(),
182
- status: external_exports.string().describe("The current status of the Twilio account.").nullable(),
183
- type: external_exports.string().describe("The Twilio account type.").nullable()
178
+ import { z } from "zod/v4";
179
+ var getAccountInput = z.strictObject({}).describe("No input is required for this action.");
180
+ var getAccountOutput = z.strictObject({
181
+ accountSid: z.string().describe("The Twilio account SID."),
182
+ friendlyName: z.string().describe("The friendly name of the Twilio account.").nullable(),
183
+ status: z.string().describe("The current status of the Twilio account.").nullable(),
184
+ type: z.string().describe("The Twilio account type.").nullable()
184
185
  }).describe("The normalized Twilio account payload.");
185
- var listUsageRecordsInput = external_exports.strictObject({
186
- category: external_exports.string().describe("The Twilio usage category to filter by.").optional(),
187
- startDate: external_exports.iso.date().describe("The inclusive start date in YYYY-MM-DD format.").optional(),
188
- endDate: external_exports.iso.date().describe("The inclusive end date in YYYY-MM-DD format.").optional(),
189
- pageSize: external_exports.int().min(1).describe("The maximum number of records to return in one page.").optional()
186
+ var listUsageRecordsInput = z.strictObject({
187
+ category: z.string().describe("The Twilio usage category to filter by.").optional(),
188
+ startDate: z.iso.date().describe("The inclusive start date in YYYY-MM-DD format.").optional(),
189
+ endDate: z.iso.date().describe("The inclusive end date in YYYY-MM-DD format.").optional(),
190
+ pageSize: z.int().min(1).describe("The maximum number of records to return in one page.").optional()
190
191
  }).describe("The input payload for listing Twilio usage records.");
191
- var listUsageRecordsOutput = external_exports.strictObject({
192
- usageRecords: external_exports.array(external_exports.strictObject({
193
- accountSid: external_exports.string().describe("The Twilio account SID that owns the usage.").nullable().optional(),
194
- category: external_exports.string().describe("The Twilio usage category.").nullable().optional(),
195
- count: external_exports.string().describe("The number of units consumed in the record.").nullable().optional(),
196
- countUnit: external_exports.string().describe("The unit for the usage count.").nullable().optional(),
197
- usage: external_exports.string().describe("The aggregated usage amount.").nullable().optional(),
198
- usageUnit: external_exports.string().describe("The unit for the aggregated usage amount.").nullable().optional(),
199
- price: external_exports.string().describe("The billed price for the usage record.").nullable().optional(),
200
- priceUnit: external_exports.string().describe("The currency unit for the billed price.").nullable().optional(),
201
- startDate: external_exports.string().describe("The inclusive start date of the usage record.").nullable().optional(),
202
- endDate: external_exports.string().describe("The inclusive end date of the usage record.").nullable().optional()
192
+ var listUsageRecordsOutput = z.strictObject({
193
+ usageRecords: z.array(z.strictObject({
194
+ accountSid: z.string().describe("The Twilio account SID that owns the usage.").nullable().optional(),
195
+ category: z.string().describe("The Twilio usage category.").nullable().optional(),
196
+ count: z.string().describe("The number of units consumed in the record.").nullable().optional(),
197
+ countUnit: z.string().describe("The unit for the usage count.").nullable().optional(),
198
+ usage: z.string().describe("The aggregated usage amount.").nullable().optional(),
199
+ usageUnit: z.string().describe("The unit for the aggregated usage amount.").nullable().optional(),
200
+ price: z.string().describe("The billed price for the usage record.").nullable().optional(),
201
+ priceUnit: z.string().describe("The currency unit for the billed price.").nullable().optional(),
202
+ startDate: z.string().describe("The inclusive start date of the usage record.").nullable().optional(),
203
+ endDate: z.string().describe("The inclusive end date of the usage record.").nullable().optional()
203
204
  }).describe("One normalized Twilio usage record.")).describe("The normalized usage records returned by Twilio."),
204
- page: external_exports.int().describe("The current Twilio result page.").nullable(),
205
- pageSize: external_exports.int().describe("The Twilio page size for this result.").nullable(),
206
- nextPageUri: external_exports.string().describe("The next page URI returned by Twilio, if any.").nullable()
205
+ page: z.int().describe("The current Twilio result page.").nullable(),
206
+ pageSize: z.int().describe("The Twilio page size for this result.").nullable(),
207
+ nextPageUri: z.string().describe("The next page URI returned by Twilio, if any.").nullable()
207
208
  }).describe("The output payload for listing Twilio usage records.");
208
- var listMessagesInput = external_exports.strictObject({
209
- to: external_exports.string().describe("Only include messages sent to this phone number.").optional(),
210
- from: external_exports.string().describe("Only include messages sent from this phone number.").optional(),
211
- pageSize: external_exports.int().min(1).describe("The maximum number of records to return in one page.").optional(),
212
- pageToken: external_exports.string().describe("The Twilio page token used to continue a previous listing.").optional()
209
+ var listMessagesInput = z.strictObject({
210
+ to: z.string().describe("Only include messages sent to this phone number.").optional(),
211
+ from: z.string().describe("Only include messages sent from this phone number.").optional(),
212
+ pageSize: z.int().min(1).describe("The maximum number of records to return in one page.").optional(),
213
+ pageToken: z.string().describe("The Twilio page token used to continue a previous listing.").optional()
213
214
  }).describe("The input payload for listing Twilio messages.");
214
- var listMessagesOutput = external_exports.strictObject({
215
- messages: external_exports.array(external_exports.strictObject({
216
- messageSid: external_exports.string().describe("The Twilio message SID.").optional(),
217
- accountSid: external_exports.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
218
- status: external_exports.string().describe("The delivery status of the message.").nullable().optional(),
219
- to: external_exports.string().describe("The destination phone number.").nullable().optional(),
220
- from: external_exports.string().describe("The sender phone number.").nullable().optional(),
221
- body: external_exports.string().describe("The text body of the message.").nullable().optional()
215
+ var listMessagesOutput = z.strictObject({
216
+ messages: z.array(z.strictObject({
217
+ messageSid: z.string().describe("The Twilio message SID.").optional(),
218
+ accountSid: z.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
219
+ status: z.string().describe("The delivery status of the message.").nullable().optional(),
220
+ to: z.string().describe("The destination phone number.").nullable().optional(),
221
+ from: z.string().describe("The sender phone number.").nullable().optional(),
222
+ body: z.string().describe("The text body of the message.").nullable().optional()
222
223
  }).describe("The normalized Twilio message payload.")).describe("The normalized Twilio messages."),
223
- nextPageUri: external_exports.string().describe("The next page URI returned by Twilio, if any.").nullable()
224
+ nextPageUri: z.string().describe("The next page URI returned by Twilio, if any.").nullable()
224
225
  }).describe("The output payload for listing Twilio messages.");
225
- var getMessageInput = external_exports.strictObject({
226
- messageSid: external_exports.string().min(1).describe("The Twilio message SID to fetch.")
226
+ var getMessageInput = z.strictObject({
227
+ messageSid: z.string().min(1).describe("The Twilio message SID to fetch.")
227
228
  }).describe("The input payload for fetching one Twilio message.");
228
- var getMessageOutput = external_exports.strictObject({
229
- messageSid: external_exports.string().describe("The Twilio message SID.").optional(),
230
- accountSid: external_exports.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
231
- status: external_exports.string().describe("The delivery status of the message.").nullable().optional(),
232
- to: external_exports.string().describe("The destination phone number.").nullable().optional(),
233
- from: external_exports.string().describe("The sender phone number.").nullable().optional(),
234
- body: external_exports.string().describe("The text body of the message.").nullable().optional()
229
+ var getMessageOutput = z.strictObject({
230
+ messageSid: z.string().describe("The Twilio message SID.").optional(),
231
+ accountSid: z.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
232
+ status: z.string().describe("The delivery status of the message.").nullable().optional(),
233
+ to: z.string().describe("The destination phone number.").nullable().optional(),
234
+ from: z.string().describe("The sender phone number.").nullable().optional(),
235
+ body: z.string().describe("The text body of the message.").nullable().optional()
235
236
  }).describe("The normalized Twilio message payload.");
236
- var sendMessageInput = external_exports.strictObject({
237
- to: external_exports.string().min(1).describe("The destination phone number in E.164 format."),
238
- from: external_exports.string().min(1).describe("The Twilio phone number sending the message."),
239
- body: external_exports.string().min(1).describe("The text body of the outbound message.")
237
+ var sendMessageInput = z.strictObject({
238
+ to: z.string().min(1).describe("The destination phone number in E.164 format."),
239
+ from: z.string().min(1).describe("The Twilio phone number sending the message."),
240
+ body: z.string().min(1).describe("The text body of the outbound message.")
240
241
  }).describe("The input payload for sending a Twilio message.");
241
- var sendMessageOutput = external_exports.strictObject({
242
- messageSid: external_exports.string().describe("The Twilio message SID.").optional(),
243
- accountSid: external_exports.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
244
- status: external_exports.string().describe("The delivery status of the message.").nullable().optional(),
245
- to: external_exports.string().describe("The destination phone number.").nullable().optional(),
246
- from: external_exports.string().describe("The sender phone number.").nullable().optional(),
247
- body: external_exports.string().describe("The text body of the message.").nullable().optional()
242
+ var sendMessageOutput = z.strictObject({
243
+ messageSid: z.string().describe("The Twilio message SID.").optional(),
244
+ accountSid: z.string().describe("The Twilio account SID that owns the message.").nullable().optional(),
245
+ status: z.string().describe("The delivery status of the message.").nullable().optional(),
246
+ to: z.string().describe("The destination phone number.").nullable().optional(),
247
+ from: z.string().describe("The sender phone number.").nullable().optional(),
248
+ body: z.string().describe("The text body of the message.").nullable().optional()
248
249
  }).describe("The normalized Twilio message payload.");
249
250
  var twilioActions = {
250
251
  get_account: {
251
252
  description: "Fetch the current Twilio account profile for the connected credential.",
252
253
  effect: "read",
253
254
  inputSchema: getAccountInput,
254
- outputSchema: external_exports.toJSONSchema(getAccountOutput, { io: "output", unrepresentable: "any" })
255
+ outputSchema: z.toJSONSchema(getAccountOutput, { io: "output", unrepresentable: "any" })
255
256
  },
256
257
  list_usage_records: {
257
258
  description: "List Twilio usage records for the connected account.",
258
259
  effect: "read",
259
260
  inputSchema: listUsageRecordsInput,
260
- outputSchema: external_exports.toJSONSchema(listUsageRecordsOutput, { io: "output", unrepresentable: "any" })
261
+ outputSchema: z.toJSONSchema(listUsageRecordsOutput, { io: "output", unrepresentable: "any" })
261
262
  },
262
263
  list_messages: {
263
264
  description: "List SMS or MMS messages for the connected Twilio account.",
264
265
  effect: "read",
265
266
  inputSchema: listMessagesInput,
266
- outputSchema: external_exports.toJSONSchema(listMessagesOutput, { io: "output", unrepresentable: "any" })
267
+ outputSchema: z.toJSONSchema(listMessagesOutput, { io: "output", unrepresentable: "any" })
267
268
  },
268
269
  get_message: {
269
270
  description: "Fetch one Twilio message by message SID.",
270
271
  effect: "read",
271
272
  inputSchema: getMessageInput,
272
- outputSchema: external_exports.toJSONSchema(getMessageOutput, { io: "output", unrepresentable: "any" })
273
+ outputSchema: z.toJSONSchema(getMessageOutput, { io: "output", unrepresentable: "any" })
273
274
  },
274
275
  send_message: {
275
276
  description: "Send an outbound SMS or MMS message with Twilio.",
276
277
  effect: "write",
277
278
  inputSchema: sendMessageInput,
278
- outputSchema: external_exports.toJSONSchema(sendMessageOutput, { io: "output", unrepresentable: "any" })
279
+ outputSchema: z.toJSONSchema(sendMessageOutput, { io: "output", unrepresentable: "any" })
279
280
  }
280
281
  };
281
282