@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.
- package/dist/admin.js +170 -0
- package/dist/airtable-VMQVXLHK.js +790 -0
- package/dist/{alt_text_generator_ai-W7O34SNG.js → alt_text_generator_ai-FTWY4RU4.js} +12 -11
- package/dist/{amap-VOX4T2AW.js → amap-OK5VBHYC.js} +221 -220
- package/dist/anthropic-S67AZFZ3.js +203 -0
- package/dist/apify-ZE6MYQI3.js +248 -0
- package/dist/brave_search-TG2M2KOD.js +302 -0
- package/dist/chunk-2JNAI4OC.js +161 -0
- package/dist/{chunk-KMTT3I6D.js → chunk-4XJPN3DY.js} +19392 -26136
- package/dist/chunk-5ICRY3VU.js +8432 -0
- package/dist/chunk-7CTWGTDU.js +302 -0
- package/dist/chunk-BADVCN6K.js +378 -0
- package/dist/{chunk-XYBU3WZH.js → chunk-TDAWLMDE.js} +3 -3
- package/dist/chunk-U7PTOA3U.js +7320 -0
- package/dist/{chunk-E6JCVKW6.js → chunk-VWRUGUSU.js} +3 -3
- package/dist/{chunk-ATK45BXV.js → chunk-WJHG6OK7.js} +4 -2
- package/dist/circleci-3L3WJVSK.js +389 -0
- package/dist/clerk-EZPF2V7T.js +1019 -0
- package/dist/cohere-U27DPO64.js +185 -0
- package/dist/{confluence-B3EWPZVE.js → confluence-G2KL6ERH.js} +105 -104
- package/dist/{convertapi-EUWSQYPF.js → convertapi-L4CLJ2M3.js} +32 -31
- package/dist/{currencyapi-KVTIK3GL.js → currencyapi-YPYXG7YY.js} +71 -71
- package/dist/deepseek-6HT6WF3M.js +210 -0
- package/dist/docker_hub-LPE3PCVB.js +933 -0
- package/dist/dropbox-V56ABHTA.js +1305 -0
- package/dist/dub-6OKQ7MHT.js +680 -0
- package/dist/e2b-JS2U2QFU.js +278 -0
- package/dist/exa-DPWVYXSP.js +332 -0
- package/dist/{fal_ai-23E7JPNT.js → fal_ai-DK6Y27ZF.js} +81 -80
- package/dist/{feishu-7QRIDUV6.js → feishu-K7EGSRF3.js} +528 -572
- package/dist/{feishu_custom_bot-TJ4K7QNJ.js → feishu_custom_bot-2JUGFYNG.js} +57 -53
- package/dist/figma-FT5I7ITD.js +777 -0
- package/dist/firehydrant-EIKLKHX2.js +563 -0
- package/dist/{fixer-BWON27UO.js → fixer-U5QXIAKD.js} +34 -33
- package/dist/fly-T3JYFZ2M.js +469 -0
- package/dist/{front-QCGXYEDJ.js → front-D72MGVOR.js} +104 -104
- package/dist/geocodio-BOTD5TI5.js +213 -0
- package/dist/ghost-KYP7SZGB.js +338 -0
- package/dist/github-AGMZT3VY.js +5421 -0
- package/dist/gmail-BLJNJOBG.js +1887 -0
- package/dist/googlecalendar-GTHWNCF6.js +2524 -0
- package/dist/{googledocs-BUHL4J2H.js → googledocs-6EEDMEBQ.js} +341 -340
- package/dist/{grafana-GLU2DWF2.js → grafana-GMW6EKSQ.js} +221 -220
- package/dist/graphhopper-6OLGBDGB.js +325 -0
- package/dist/index.d.ts +1132 -332
- package/dist/index.js +31 -14
- package/dist/{ip2proxy-EZ64Y4ZH.js → ip2proxy-4QN42E6T.js} +28 -27
- package/dist/ipgeolocation_io-SK4XKDA2.js +315 -0
- package/dist/ipqualityscore-6ANBPXKT.js +279 -0
- package/dist/{jina_ai-EFBHTBXL.js → jina_ai-IHPSVRM5.js} +23 -23
- package/dist/{jira-HQSHAA5K.js → jira-46KKM4LC.js} +118 -117
- package/dist/langsmith-JZA345I5.js +593 -0
- package/dist/lemlist-43IV7DK6.js +289 -0
- package/dist/{linear-K7RYFYAD.js → linear-5LFH7XNL.js} +327 -326
- package/dist/logsnag-5RMYAHIL.js +150 -0
- package/dist/main.js +57 -280
- package/dist/{mattermost-S2BRCWLQ.js → mattermost-XFL6SHGG.js} +59 -58
- package/dist/mem0-NYO4DTP6.js +544 -0
- package/dist/memos-37MPQOLV.js +744 -0
- package/dist/{metabase-MMSEPCOF.js → metabase-KYBKZFMG.js} +90 -89
- package/dist/mistral_ai-6PL3K4PM.js +1196 -0
- package/dist/{mother_duck-H7PCQNZ2.js → mother_duck-2NH7W5M5.js} +94 -93
- package/dist/ngrok-UO6CDYCA.js +356 -0
- package/dist/{notes-PFMKRO33.js → notes-I3P32WP4.js} +11 -9
- package/dist/notion-BEAJFUOE.js +940 -0
- package/dist/open_exchange_rates-CMF62JB4.js +215 -0
- package/dist/openai-IHOMKVND.js +800 -0
- package/dist/opengraph_io-ZQ2FGLHX.js +362 -0
- package/dist/openrouter-HXLW3NR5.js +441 -0
- package/dist/outline-ELCP4NEU.js +599 -0
- package/dist/paddle-O77LALVN.js +454 -0
- package/dist/perplexity-JCU654QV.js +220 -0
- package/dist/pinecone-W5W4LRKL.js +571 -0
- package/dist/{pipedrive-Y2O7QGFF.js → pipedrive-ITMJLLPZ.js} +99 -98
- package/dist/polar-R33XU4L3.js +395 -0
- package/dist/posthog-JVNTOLTV.js +3464 -0
- package/dist/postmark-6SBG7HWV.js +427 -0
- package/dist/{prerender-MENYM2TY.js → prerender-GPNKTNFC.js} +31 -30
- package/dist/{pubmed-GOXUVVH5.js → pubmed-UP6ZEEIH.js} +239 -238
- package/dist/{railway-V2SID4WV.js → railway-KWEWXHTY.js} +118 -117
- package/dist/readwise-BLATSMC3.js +470 -0
- package/dist/render-QYRVIXII.js +461 -0
- package/dist/{replicate-756MXPYX.js → replicate-JYTWH4NF.js} +81 -80
- package/dist/{resend-ZKH3BTBI.js → resend-L5N75SZM.js} +20 -16
- package/dist/rootly-MHCPEQ26.js +336 -0
- package/dist/{scrapfly-NSRHFDIQ.js → scrapfly-PTPGYSJM.js} +62 -61
- package/dist/{scrapingbee-OQHLAVEY.js → scrapingbee-JN6UH5PY.js} +56 -56
- package/dist/{screenshot_fyi-DVWG3AXC.js → screenshot_fyi-4QRVSV55.js} +16 -16
- package/dist/semantic_scholar-LRSWA2GE.js +611 -0
- package/dist/{sentry-546MNDJG.js → sentry-2G6PF5W6.js} +208 -207
- package/dist/{shodan-C3OON3Z3.js → shodan-WKKPP5C6.js} +62 -61
- package/dist/shopify-64YDK5T2.js +610 -0
- package/dist/stripe-QAIGGOTF.js +585 -0
- package/dist/{supabase-U2SL4D63.js → supabase-WHTGR6ND.js} +245 -244
- package/dist/tavily-QIXCDDWO.js +326 -0
- package/dist/telegram-E6G7CWI6.js +1767 -0
- package/dist/{telnyx-CXQ4EZUX.js → telnyx-ZDVVS7PK.js} +57 -56
- package/dist/todoist-DMYF3G7J.js +664 -0
- package/dist/trello-HY2RYIRP.js +1080 -0
- package/dist/turso-HAQWMGRP.js +416 -0
- package/dist/{twilio-4PDBJKWX.js → twilio-MLXYPHJE.js} +70 -69
- package/dist/umami-DZHBLPVG.js +389 -0
- package/dist/unsplash-GS2OPXKE.js +351 -0
- package/dist/{upstash_redis-G4LQBYHA.js → upstash_redis-XMXWTNAJ.js} +51 -50
- package/dist/uptimerobot-TF5WRZ4G.js +483 -0
- package/dist/v2ex-2BVXAPDF.js +667 -0
- package/dist/vercel-YMJGQYJE.js +1076 -0
- package/dist/{wolfram_alpha_api-3G4PUJWB.js → wolfram_alpha_api-I56SXWFZ.js} +36 -35
- package/dist/wordpress-R7TDFZ2P.js +812 -0
- package/dist/workos-HDNHWVMS.js +664 -0
- package/dist/zhihu-LX6AGGDS.js +254 -0
- package/package.json +18 -9
- package/dist/airtable-LLZDFN7M.js +0 -789
- package/dist/anthropic-G23NN3X5.js +0 -202
- package/dist/apify-Y3SS734K.js +0 -247
- package/dist/brave_search-ZC7OAPSZ.js +0 -301
- package/dist/chunk-R6P4XAE5.js +0 -248
- package/dist/chunk-U7B6DS2O.js +0 -977
- package/dist/chunk-UZM2RXZH.js +0 -23436
- package/dist/circleci-3BAX5FCG.js +0 -388
- package/dist/clerk-6LEM6TNU.js +0 -1019
- package/dist/cloudflare_dns-KINYTJUD.js +0 -588
- package/dist/cohere-XCJ5AJ6B.js +0 -185
- package/dist/deepseek-PC5YGNC5.js +0 -209
- package/dist/docker_hub-C3MA5FU6.js +0 -932
- package/dist/dropbox-XBV7Z2IR.js +0 -1304
- package/dist/dub-LDOFG3HC.js +0 -679
- package/dist/e2b-JMCPSVBW.js +0 -277
- package/dist/exa-RAK7O7RD.js +0 -331
- package/dist/figma-E6IX5DTH.js +0 -773
- package/dist/firehydrant-ZBLPQREE.js +0 -562
- package/dist/fly-ZH3HFCZJ.js +0 -468
- package/dist/geocodio-YGNI7DA4.js +0 -212
- package/dist/ghost-EVSGKH2Q.js +0 -337
- package/dist/github-MA2BGRCJ.js +0 -5420
- package/dist/gmail-E5E6AADE.js +0 -1886
- package/dist/googlecalendar-BTLFPXTD.js +0 -2523
- package/dist/graphhopper-WSMB3TCD.js +0 -324
- package/dist/ipgeolocation_io-AA7HAS22.js +0 -315
- package/dist/ipqualityscore-BHJXVTJT.js +0 -277
- package/dist/langsmith-5W6SCT6F.js +0 -592
- package/dist/lemlist-HJWH6UMK.js +0 -288
- package/dist/logsnag-4KFOHL37.js +0 -150
- package/dist/mem0-CAW43CIC.js +0 -543
- package/dist/memos-TWEGPKFM.js +0 -740
- package/dist/mistral_ai-64BGZQHP.js +0 -1195
- package/dist/ngrok-GQCUGZKJ.js +0 -356
- package/dist/notion-DQWZWP4N.js +0 -936
- package/dist/open_exchange_rates-QMMD735E.js +0 -214
- package/dist/openai-W6PX32NZ.js +0 -799
- package/dist/opengraph_io-HNDBXYNW.js +0 -361
- package/dist/openrouter-JJYMEAUL.js +0 -437
- package/dist/outline-MCBNQZYY.js +0 -595
- package/dist/paddle-D2SKLUDN.js +0 -453
- package/dist/perplexity-XIFMKUAE.js +0 -219
- package/dist/pinecone-HUFTALV2.js +0 -570
- package/dist/polar-TYTOMOSR.js +0 -394
- package/dist/posthog-43JAR3VW.js +0 -3463
- package/dist/postmark-KL2QJYSG.js +0 -426
- package/dist/readwise-CI4GIMMJ.js +0 -469
- package/dist/render-SUBJ6YRZ.js +0 -460
- package/dist/rootly-CD2LJHPI.js +0 -336
- package/dist/semantic_scholar-T4A252KW.js +0 -610
- package/dist/shopify-Y2HN2MCQ.js +0 -609
- package/dist/stripe-VE3CD3AY.js +0 -584
- package/dist/tavily-KCZHK6HE.js +0 -326
- package/dist/telegram-3URFBCMY.js +0 -1766
- package/dist/todoist-HNPWNYTD.js +0 -663
- package/dist/trello-3W2MIXRP.js +0 -1079
- package/dist/turso-2EQF7C2Z.js +0 -415
- package/dist/umami-5REN7TGP.js +0 -388
- package/dist/unsplash-EIXL424F.js +0 -350
- package/dist/uptimerobot-KNJ3EYLY.js +0 -482
- package/dist/v2ex-RHJ234PZ.js +0 -666
- package/dist/vercel-AS6NCIC7.js +0 -1075
- package/dist/wordpress-KNDAAUV7.js +0 -811
- package/dist/workos-R6UITSJ7.js +0 -663
- package/dist/zhihu-AGK4HILK.js +0 -253
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createAuthedClient
|
|
3
|
+
} from "./chunk-TDAWLMDE.js";
|
|
4
|
+
import "./chunk-VWRUGUSU.js";
|
|
5
|
+
import {
|
|
6
|
+
asJsonObject,
|
|
7
|
+
compactDefined,
|
|
8
|
+
trimmedText
|
|
9
|
+
} from "./chunk-JXHMDBAY.js";
|
|
10
|
+
import {
|
|
11
|
+
createProviderPlugin,
|
|
12
|
+
upstreamError
|
|
13
|
+
} from "./chunk-WJHG6OK7.js";
|
|
14
|
+
import "./chunk-2JNAI4OC.js";
|
|
15
|
+
import "./chunk-BADVCN6K.js";
|
|
16
|
+
import {
|
|
17
|
+
TBError
|
|
18
|
+
} from "./chunk-5ICRY3VU.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-
|
|
10
|
+
} from "./chunk-WJHG6OK7.js";
|
|
11
11
|
import {
|
|
12
12
|
guardedFetch
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2JNAI4OC.js";
|
|
14
|
+
import "./chunk-BADVCN6K.js";
|
|
14
15
|
import {
|
|
15
16
|
TBError,
|
|
16
|
-
external_exports,
|
|
17
17
|
isTBError
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5ICRY3VU.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
|
-
|
|
179
|
-
var
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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 =
|
|
186
|
-
category:
|
|
187
|
-
startDate:
|
|
188
|
-
endDate:
|
|
189
|
-
pageSize:
|
|
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 =
|
|
192
|
-
usageRecords:
|
|
193
|
-
accountSid:
|
|
194
|
-
category:
|
|
195
|
-
count:
|
|
196
|
-
countUnit:
|
|
197
|
-
usage:
|
|
198
|
-
usageUnit:
|
|
199
|
-
price:
|
|
200
|
-
priceUnit:
|
|
201
|
-
startDate:
|
|
202
|
-
endDate:
|
|
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:
|
|
205
|
-
pageSize:
|
|
206
|
-
nextPageUri:
|
|
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 =
|
|
209
|
-
to:
|
|
210
|
-
from:
|
|
211
|
-
pageSize:
|
|
212
|
-
pageToken:
|
|
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 =
|
|
215
|
-
messages:
|
|
216
|
-
messageSid:
|
|
217
|
-
accountSid:
|
|
218
|
-
status:
|
|
219
|
-
to:
|
|
220
|
-
from:
|
|
221
|
-
body:
|
|
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:
|
|
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 =
|
|
226
|
-
messageSid:
|
|
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 =
|
|
229
|
-
messageSid:
|
|
230
|
-
accountSid:
|
|
231
|
-
status:
|
|
232
|
-
to:
|
|
233
|
-
from:
|
|
234
|
-
body:
|
|
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 =
|
|
237
|
-
to:
|
|
238
|
-
from:
|
|
239
|
-
body:
|
|
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 =
|
|
242
|
-
messageSid:
|
|
243
|
-
accountSid:
|
|
244
|
-
status:
|
|
245
|
-
to:
|
|
246
|
-
from:
|
|
247
|
-
body:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
279
|
+
outputSchema: z.toJSONSchema(sendMessageOutput, { io: "output", unrepresentable: "any" })
|
|
279
280
|
}
|
|
280
281
|
};
|
|
281
282
|
|