@vm0/cli 9.277.3 → 9.278.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.
- package/{agent-ZH5AKOA7.js → agent-4F3XAJWN.js} +12 -6
- package/agent-4F3XAJWN.js.map +1 -0
- package/{banking-BZ77LHW3.js → banking-CWQFQKZB.js} +61 -7
- package/banking-CWQFQKZB.js.map +1 -0
- package/{browser-AHNWLXVC.js → browser-BI6UFWPH.js} +4 -5
- package/browser-BI6UFWPH.js.map +1 -0
- package/{chat-RXYX7ONH.js → chat-MKIW4FPP.js} +24 -16
- package/chat-MKIW4FPP.js.map +1 -0
- package/chunk-2SJTFDC2.js +189 -0
- package/chunk-2SJTFDC2.js.map +1 -0
- package/chunk-4FTIKZKP.js +64 -0
- package/chunk-4FTIKZKP.js.map +1 -0
- package/chunk-7UZXNER2.js +568 -0
- package/chunk-7UZXNER2.js.map +1 -0
- package/chunk-A6ZRMNM3.js +102 -0
- package/chunk-A6ZRMNM3.js.map +1 -0
- package/{chunk-CNKLF32K.js → chunk-C62A6LD6.js} +2 -2
- package/chunk-CCTF3YVW.js +52 -0
- package/chunk-CCTF3YVW.js.map +1 -0
- package/chunk-CD2BLKGC.js +188 -0
- package/chunk-CD2BLKGC.js.map +1 -0
- package/chunk-CEJGHPF3.js +55 -0
- package/chunk-CEJGHPF3.js.map +1 -0
- package/chunk-DUA6CF7E.js +2053 -0
- package/chunk-DUA6CF7E.js.map +1 -0
- package/chunk-E2TQAKNL.js +1300 -0
- package/chunk-E2TQAKNL.js.map +1 -0
- package/{chunk-W3Z5TMVI.js → chunk-GHKWW4NC.js} +6 -6
- package/chunk-GHKWW4NC.js.map +1 -0
- package/chunk-GV3PG6CZ.js +114 -0
- package/chunk-GV3PG6CZ.js.map +1 -0
- package/chunk-GY7D76EZ.js +81 -0
- package/chunk-GY7D76EZ.js.map +1 -0
- package/chunk-HHHHZMTA.js +434 -0
- package/chunk-HHHHZMTA.js.map +1 -0
- package/chunk-HZYOJTEE.js +1275 -0
- package/chunk-HZYOJTEE.js.map +1 -0
- package/chunk-J3ZRXVI6.js +740 -0
- package/chunk-J3ZRXVI6.js.map +1 -0
- package/chunk-JJWFO27K.js +31 -0
- package/chunk-JJWFO27K.js.map +1 -0
- package/chunk-JV6LM2YC.js +39 -0
- package/chunk-JV6LM2YC.js.map +1 -0
- package/chunk-KER77KJB.js +105 -0
- package/chunk-KER77KJB.js.map +1 -0
- package/{chunk-FWACFGXV.js → chunk-KKO2XGLQ.js} +1 -7
- package/chunk-KKO2XGLQ.js.map +1 -0
- package/chunk-LIYPTQAO.js +198 -0
- package/chunk-LIYPTQAO.js.map +1 -0
- package/chunk-LYLDVUHT.js +131 -0
- package/chunk-LYLDVUHT.js.map +1 -0
- package/chunk-PFWBO2VK.js +801 -0
- package/chunk-PFWBO2VK.js.map +1 -0
- package/chunk-RTCRU35A.js +194 -0
- package/chunk-RTCRU35A.js.map +1 -0
- package/{chunk-AOL57FX7.js → chunk-RTEEWZUT.js} +2 -2
- package/{chunk-AOL57FX7.js.map → chunk-RTEEWZUT.js.map} +1 -1
- package/{chunk-JCXH3DJW.js → chunk-RUKMHBNQ.js} +2 -2
- package/chunk-SA4DYSBR.js +31 -0
- package/chunk-SA4DYSBR.js.map +1 -0
- package/chunk-SJPOFQJU.js +792 -0
- package/chunk-SJPOFQJU.js.map +1 -0
- package/{chunk-XUK2BILU.js → chunk-SMPSKBAP.js} +25 -774
- package/chunk-SMPSKBAP.js.map +1 -0
- package/{chunk-JBQRGOPE.js → chunk-T2X2EGV2.js} +4 -4
- package/chunk-T2X2EGV2.js.map +1 -0
- package/chunk-U2GQH6AD.js +309 -0
- package/chunk-U2GQH6AD.js.map +1 -0
- package/chunk-U6A2RPHO.js +66 -0
- package/chunk-U6A2RPHO.js.map +1 -0
- package/chunk-UIXUGVZB.js +362 -0
- package/chunk-UIXUGVZB.js.map +1 -0
- package/chunk-XRZKJACM.js +49 -0
- package/chunk-XRZKJACM.js.map +1 -0
- package/chunk-YDS3X7KB.js +202 -0
- package/chunk-YDS3X7KB.js.map +1 -0
- package/{chunk-DSILKRQ7.js → chunk-ZKNJW4K6.js} +1412 -334
- package/chunk-ZKNJW4K6.js.map +1 -0
- package/chunk-ZXSCBS77.js +90 -0
- package/chunk-ZXSCBS77.js.map +1 -0
- package/{computer-use-MSFO3WPF.js → computer-use-6AEVW47F.js} +9 -7
- package/computer-use-6AEVW47F.js.map +1 -0
- package/{connector-IIVOX2PE.js → connector-XDQ6JEBU.js} +25 -13
- package/connector-XDQ6JEBU.js.map +1 -0
- package/{credit-QEW5A5HI.js → credit-JPQA5XPA.js} +8 -10
- package/credit-JPQA5XPA.js.map +1 -0
- package/{developer-support-YMAFVROQ.js → developer-support-V7NZOU2P.js} +27 -7
- package/developer-support-V7NZOU2P.js.map +1 -0
- package/{doctor-UCXIPG3N.js → doctor-FJO24TG3.js} +13 -11
- package/doctor-FJO24TG3.js.map +1 -0
- package/{feishu-C6RFK23B.js → feishu-PNOAM33Q.js} +99 -9
- package/feishu-PNOAM33Q.js.map +1 -0
- package/{finance-FWHZZDHV.js → finance-55OJ6GYP.js} +49 -9
- package/finance-55OJ6GYP.js.map +1 -0
- package/{generate-ZPHZEKPA.js → generate-XUKBK523.js} +26 -21
- package/generate-XUKBK523.js.map +1 -0
- package/{github-HN4GNXAK.js → github-V4MD2PMM.js} +83 -8
- package/github-V4MD2PMM.js.map +1 -0
- package/{goal-PMOUUCFA.js → goal-FS5FJKVU.js} +69 -13
- package/goal-FS5FJKVU.js.map +1 -0
- package/{host-MJHIXUAY.js → host-GITTJ6PR.js} +124 -10
- package/host-GITTJ6PR.js.map +1 -0
- package/{logs-YDYLNB7C.js → logs-EEUIGYUD.js} +51 -11
- package/logs-EEUIGYUD.js.map +1 -0
- package/{mail-4QK3SBSA.js → mail-G4SAJSBD.js} +39 -8
- package/mail-G4SAJSBD.js.map +1 -0
- package/{maps-5KEDKI5K.js → maps-7ANNU3BX.js} +65 -11
- package/maps-7ANNU3BX.js.map +1 -0
- package/{model-6A47KM5J.js → model-DSPDCJLB.js} +6 -6
- package/model-DSPDCJLB.js.map +1 -0
- package/{model-provider-WII3JIC2.js → model-provider-RZQ45PNG.js} +6 -6
- package/model-provider-RZQ45PNG.js.map +1 -0
- package/package.json +1 -1
- package/{people-search-32IRBQ6M.js → people-search-I7PUMF5M.js} +22 -6
- package/people-search-I7PUMF5M.js.map +1 -0
- package/{phone-CZZVZNG3.js → phone-SSAPGMTW.js} +90 -9
- package/phone-SSAPGMTW.js.map +1 -0
- package/{recognize-T2SL5TXQ.js → recognize-D7VORZBN.js} +27 -9
- package/recognize-D7VORZBN.js.map +1 -0
- package/{resource-ULP6MJD5.js → resource-76IV3TMW.js} +21 -7
- package/resource-76IV3TMW.js.map +1 -0
- package/{scrape-4NAMXDHI.js → scrape-JBDLNTLB.js} +22 -6
- package/scrape-JBDLNTLB.js.map +1 -0
- package/{search-6R4Y3ME2.js → search-UNZNUTZX.js} +29 -9
- package/search-UNZNUTZX.js.map +1 -0
- package/{slack-Y47DQGAJ.js → slack-AAH6GG2W.js} +103 -11
- package/slack-AAH6GG2W.js.map +1 -0
- package/{teams-TOHTW3CG.js → teams-6OPXE4TX.js} +90 -9
- package/teams-6OPXE4TX.js.map +1 -0
- package/{telegram-PUREW6O3.js → telegram-RRZG73RT.js} +101 -10
- package/telegram-RRZG73RT.js.map +1 -0
- package/{upgrade-7XZEYRDY.js → upgrade-I5IL4UQL.js} +3 -4
- package/upgrade-I5IL4UQL.js.map +1 -0
- package/{video-IGMHZRYE.js → video-HV44W4X7.js} +5 -4
- package/video-HV44W4X7.js.map +1 -0
- package/{weather-K6ETWEZZ.js → weather-EQ7CSADB.js} +70 -16
- package/weather-EQ7CSADB.js.map +1 -0
- package/{web-C4FWCJ2V.js → web-6LIMWEOZ.js} +5 -5
- package/web-6LIMWEOZ.js.map +1 -0
- package/{web-search-UD6ODWOQ.js → web-search-AT7WONZN.js} +22 -6
- package/web-search-AT7WONZN.js.map +1 -0
- package/{whoami-2GTNF4PK.js → whoami-RKTLLSI4.js} +16 -7
- package/whoami-RKTLLSI4.js.map +1 -0
- package/{workflow-QFTHJK6H.js → workflow-ZH32P622.js} +135 -39
- package/workflow-ZH32P622.js.map +1 -0
- package/zero.js +40 -40
- package/agent-ZH5AKOA7.js.map +0 -1
- package/banking-BZ77LHW3.js.map +0 -1
- package/browser-AHNWLXVC.js.map +0 -1
- package/chat-RXYX7ONH.js.map +0 -1
- package/chunk-2W73DZDW.js +0 -32
- package/chunk-2W73DZDW.js.map +0 -1
- package/chunk-ANOLYIPL.js +0 -10
- package/chunk-ANOLYIPL.js.map +0 -1
- package/chunk-DSILKRQ7.js.map +0 -1
- package/chunk-FWACFGXV.js.map +0 -1
- package/chunk-HOKSKXDR.js +0 -11405
- package/chunk-HOKSKXDR.js.map +0 -1
- package/chunk-JBQRGOPE.js.map +0 -1
- package/chunk-W3Z5TMVI.js.map +0 -1
- package/chunk-XUK2BILU.js.map +0 -1
- package/computer-use-MSFO3WPF.js.map +0 -1
- package/connector-IIVOX2PE.js.map +0 -1
- package/credit-QEW5A5HI.js.map +0 -1
- package/developer-support-YMAFVROQ.js.map +0 -1
- package/doctor-UCXIPG3N.js.map +0 -1
- package/feishu-C6RFK23B.js.map +0 -1
- package/finance-FWHZZDHV.js.map +0 -1
- package/generate-ZPHZEKPA.js.map +0 -1
- package/github-HN4GNXAK.js.map +0 -1
- package/goal-PMOUUCFA.js.map +0 -1
- package/host-MJHIXUAY.js.map +0 -1
- package/logs-YDYLNB7C.js.map +0 -1
- package/mail-4QK3SBSA.js.map +0 -1
- package/maps-5KEDKI5K.js.map +0 -1
- package/model-6A47KM5J.js.map +0 -1
- package/model-provider-WII3JIC2.js.map +0 -1
- package/people-search-32IRBQ6M.js.map +0 -1
- package/phone-CZZVZNG3.js.map +0 -1
- package/recognize-T2SL5TXQ.js.map +0 -1
- package/resource-ULP6MJD5.js.map +0 -1
- package/scrape-4NAMXDHI.js.map +0 -1
- package/search-6R4Y3ME2.js.map +0 -1
- package/slack-Y47DQGAJ.js.map +0 -1
- package/teams-TOHTW3CG.js.map +0 -1
- package/telegram-PUREW6O3.js.map +0 -1
- package/upgrade-7XZEYRDY.js.map +0 -1
- package/video-IGMHZRYE.js.map +0 -1
- package/weather-K6ETWEZZ.js.map +0 -1
- package/web-C4FWCJ2V.js.map +0 -1
- package/web-search-UD6ODWOQ.js.map +0 -1
- package/whoami-2GTNF4PK.js.map +0 -1
- package/workflow-QFTHJK6H.js.map +0 -1
- /package/{chunk-CNKLF32K.js.map → chunk-C62A6LD6.js.map} +0 -0
- /package/{chunk-JCXH3DJW.js.map → chunk-RUKMHBNQ.js.map} +0 -0
|
@@ -0,0 +1,801 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
authHeadersSchema
|
|
6
|
+
} from "./chunk-JV6LM2YC.js";
|
|
7
|
+
import {
|
|
8
|
+
apiErrorSchema,
|
|
9
|
+
external_exports,
|
|
10
|
+
initContract
|
|
11
|
+
} from "./chunk-GHKWW4NC.js";
|
|
12
|
+
import {
|
|
13
|
+
init_esm_shims
|
|
14
|
+
} from "./chunk-AUWSMG4F.js";
|
|
15
|
+
|
|
16
|
+
// ../../packages/api-contracts/src/contracts/integrations.ts
|
|
17
|
+
init_esm_shims();
|
|
18
|
+
var c = initContract();
|
|
19
|
+
var directUploadCapabilityShape = {
|
|
20
|
+
supportsUploadHeaders: external_exports.literal(true).optional()
|
|
21
|
+
};
|
|
22
|
+
var directUploadResponseShape = {
|
|
23
|
+
uploadHeaders: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
24
|
+
};
|
|
25
|
+
var sendSlackMessageBodySchema = external_exports.object({
|
|
26
|
+
channel: external_exports.string().min(1, "Channel ID is required").optional(),
|
|
27
|
+
user: external_exports.string().min(1, "User ID is required").optional(),
|
|
28
|
+
text: external_exports.string().optional(),
|
|
29
|
+
threadTs: external_exports.string().optional(),
|
|
30
|
+
blocks: external_exports.array(external_exports.object({ type: external_exports.string() }).passthrough()).optional()
|
|
31
|
+
}).refine(
|
|
32
|
+
(data) => {
|
|
33
|
+
return Boolean(data.channel) !== Boolean(data.user);
|
|
34
|
+
},
|
|
35
|
+
{ message: "Exactly one of 'channel' or 'user' must be provided" }
|
|
36
|
+
);
|
|
37
|
+
var sendSlackMessageResponseSchema = external_exports.object({
|
|
38
|
+
ok: external_exports.literal(true),
|
|
39
|
+
ts: external_exports.string().optional(),
|
|
40
|
+
channel: external_exports.string().optional()
|
|
41
|
+
});
|
|
42
|
+
var integrationsSlackMessageContract = c.router({
|
|
43
|
+
sendMessage: {
|
|
44
|
+
method: "POST",
|
|
45
|
+
path: "/api/zero/integrations/slack/message",
|
|
46
|
+
headers: authHeadersSchema,
|
|
47
|
+
body: sendSlackMessageBodySchema,
|
|
48
|
+
responses: {
|
|
49
|
+
200: sendSlackMessageResponseSchema,
|
|
50
|
+
400: apiErrorSchema,
|
|
51
|
+
401: apiErrorSchema,
|
|
52
|
+
403: apiErrorSchema,
|
|
53
|
+
404: apiErrorSchema
|
|
54
|
+
},
|
|
55
|
+
summary: "Send a Slack message via org bot token"
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
var feishuCardSchema = external_exports.record(external_exports.string(), external_exports.unknown());
|
|
59
|
+
var sendFeishuMessageBodySchema = external_exports.object({
|
|
60
|
+
installationId: external_exports.string().uuid().optional(),
|
|
61
|
+
chat: external_exports.string().min(1, "Chat ID is required").optional(),
|
|
62
|
+
user: external_exports.string().min(1, "Feishu open ID is required").optional(),
|
|
63
|
+
replyToMessageId: external_exports.string().min(1, "Message ID is required").optional(),
|
|
64
|
+
replyInThread: external_exports.boolean().optional(),
|
|
65
|
+
text: external_exports.string().min(1, "Message text is required").optional(),
|
|
66
|
+
card: feishuCardSchema.optional()
|
|
67
|
+
}).refine(
|
|
68
|
+
(body) => {
|
|
69
|
+
return [body.chat, body.user, body.replyToMessageId].filter(Boolean).length === 1;
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
message: "Exactly one of chat, user, or replyToMessageId is required",
|
|
73
|
+
path: ["chat"]
|
|
74
|
+
}
|
|
75
|
+
).refine(
|
|
76
|
+
(body) => {
|
|
77
|
+
return Boolean(body.text) !== Boolean(body.card);
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
message: "Exactly one of text or card is required",
|
|
81
|
+
path: ["text"]
|
|
82
|
+
}
|
|
83
|
+
).refine(
|
|
84
|
+
(body) => {
|
|
85
|
+
return !body.replyInThread || Boolean(body.replyToMessageId);
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
message: "replyInThread requires replyToMessageId",
|
|
89
|
+
path: ["replyInThread"]
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
var sendFeishuMessageResponseSchema = external_exports.object({
|
|
93
|
+
ok: external_exports.literal(true),
|
|
94
|
+
messageId: external_exports.string(),
|
|
95
|
+
chatId: external_exports.string().nullable()
|
|
96
|
+
});
|
|
97
|
+
var integrationsFeishuMessageContract = c.router({
|
|
98
|
+
sendMessage: {
|
|
99
|
+
method: "POST",
|
|
100
|
+
path: "/api/zero/integrations/feishu/message",
|
|
101
|
+
headers: authHeadersSchema,
|
|
102
|
+
body: sendFeishuMessageBodySchema,
|
|
103
|
+
responses: {
|
|
104
|
+
200: sendFeishuMessageResponseSchema,
|
|
105
|
+
400: apiErrorSchema,
|
|
106
|
+
401: apiErrorSchema,
|
|
107
|
+
403: apiErrorSchema,
|
|
108
|
+
404: apiErrorSchema,
|
|
109
|
+
502: apiErrorSchema
|
|
110
|
+
},
|
|
111
|
+
summary: "Send a Feishu message via an organization custom app"
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
var FEISHU_FILE_UPLOAD_MAX_BYTES = 30 * 1024 * 1024;
|
|
115
|
+
var feishuResourceTypeSchema = external_exports.enum(["file", "image"]);
|
|
116
|
+
var integrationsFeishuDownloadFileContract = c.router({
|
|
117
|
+
download: {
|
|
118
|
+
method: "GET",
|
|
119
|
+
path: "/api/zero/integrations/feishu/download-file",
|
|
120
|
+
headers: authHeadersSchema,
|
|
121
|
+
query: external_exports.object({
|
|
122
|
+
installation_id: external_exports.string().uuid().optional(),
|
|
123
|
+
message_id: external_exports.string().min(1, "Message ID is required"),
|
|
124
|
+
file_key: external_exports.string().min(1, "File key is required"),
|
|
125
|
+
type: feishuResourceTypeSchema
|
|
126
|
+
}),
|
|
127
|
+
responses: {
|
|
128
|
+
200: c.otherResponse({
|
|
129
|
+
contentType: "application/octet-stream",
|
|
130
|
+
body: external_exports.unknown()
|
|
131
|
+
}),
|
|
132
|
+
400: apiErrorSchema,
|
|
133
|
+
401: apiErrorSchema,
|
|
134
|
+
403: apiErrorSchema,
|
|
135
|
+
404: apiErrorSchema,
|
|
136
|
+
413: apiErrorSchema,
|
|
137
|
+
502: apiErrorSchema
|
|
138
|
+
},
|
|
139
|
+
summary: "Download a file from a Feishu message"
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
var feishuUploadInitBodySchema = external_exports.object({
|
|
143
|
+
filename: external_exports.string().min(1, "Filename is required").max(255),
|
|
144
|
+
contentType: external_exports.string().min(1, "Content type is required").max(200),
|
|
145
|
+
length: external_exports.number().int().positive("File length must be a positive integer").max(
|
|
146
|
+
FEISHU_FILE_UPLOAD_MAX_BYTES,
|
|
147
|
+
`File must not exceed ${FEISHU_FILE_UPLOAD_MAX_BYTES} bytes`
|
|
148
|
+
),
|
|
149
|
+
...directUploadCapabilityShape
|
|
150
|
+
});
|
|
151
|
+
var feishuUploadInitResponseSchema = external_exports.object({
|
|
152
|
+
uploadId: external_exports.string().uuid(),
|
|
153
|
+
uploadUrl: external_exports.string(),
|
|
154
|
+
fileUrl: external_exports.string(),
|
|
155
|
+
filename: external_exports.string(),
|
|
156
|
+
contentType: external_exports.string(),
|
|
157
|
+
size: external_exports.number().int().nonnegative(),
|
|
158
|
+
...directUploadResponseShape
|
|
159
|
+
});
|
|
160
|
+
var integrationsFeishuUploadInitContract = c.router({
|
|
161
|
+
init: {
|
|
162
|
+
method: "POST",
|
|
163
|
+
path: "/api/zero/integrations/feishu/upload-file/init",
|
|
164
|
+
headers: authHeadersSchema,
|
|
165
|
+
body: feishuUploadInitBodySchema,
|
|
166
|
+
responses: {
|
|
167
|
+
200: feishuUploadInitResponseSchema,
|
|
168
|
+
400: apiErrorSchema,
|
|
169
|
+
401: apiErrorSchema,
|
|
170
|
+
403: apiErrorSchema
|
|
171
|
+
},
|
|
172
|
+
summary: "Get a pre-signed upload URL for Feishu file delivery"
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
var feishuUploadCompleteBodySchema = external_exports.object({
|
|
176
|
+
uploadId: external_exports.string().uuid("Upload ID must be a UUID"),
|
|
177
|
+
installationId: external_exports.string().uuid().optional(),
|
|
178
|
+
chat: external_exports.string().min(1, "Chat ID is required").optional(),
|
|
179
|
+
user: external_exports.string().min(1, "Feishu open ID is required").optional(),
|
|
180
|
+
replyToMessageId: external_exports.string().min(1, "Message ID is required").optional(),
|
|
181
|
+
replyInThread: external_exports.boolean().optional(),
|
|
182
|
+
contentType: external_exports.string().min(1).max(200).optional()
|
|
183
|
+
}).refine(
|
|
184
|
+
(body) => {
|
|
185
|
+
return [body.chat, body.user, body.replyToMessageId].filter(Boolean).length === 1;
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
message: "Exactly one of chat, user, or replyToMessageId is required",
|
|
189
|
+
path: ["chat"]
|
|
190
|
+
}
|
|
191
|
+
).refine(
|
|
192
|
+
(body) => {
|
|
193
|
+
return !body.replyInThread || Boolean(body.replyToMessageId);
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
message: "replyInThread requires replyToMessageId",
|
|
197
|
+
path: ["replyInThread"]
|
|
198
|
+
}
|
|
199
|
+
);
|
|
200
|
+
var feishuUploadCompleteResponseSchema = external_exports.object({
|
|
201
|
+
messageId: external_exports.string(),
|
|
202
|
+
chatId: external_exports.string().nullable(),
|
|
203
|
+
fileKey: external_exports.string(),
|
|
204
|
+
filename: external_exports.string(),
|
|
205
|
+
mimetype: external_exports.string(),
|
|
206
|
+
size: external_exports.number().int().nonnegative(),
|
|
207
|
+
url: external_exports.string()
|
|
208
|
+
});
|
|
209
|
+
var integrationsFeishuUploadCompleteContract = c.router({
|
|
210
|
+
complete: {
|
|
211
|
+
method: "POST",
|
|
212
|
+
path: "/api/zero/integrations/feishu/upload-file/complete",
|
|
213
|
+
headers: authHeadersSchema,
|
|
214
|
+
body: feishuUploadCompleteBodySchema,
|
|
215
|
+
responses: {
|
|
216
|
+
200: feishuUploadCompleteResponseSchema,
|
|
217
|
+
400: apiErrorSchema,
|
|
218
|
+
401: apiErrorSchema,
|
|
219
|
+
403: apiErrorSchema,
|
|
220
|
+
404: apiErrorSchema,
|
|
221
|
+
413: apiErrorSchema,
|
|
222
|
+
502: apiErrorSchema
|
|
223
|
+
},
|
|
224
|
+
summary: "Finalize Feishu file upload and send it to a conversation"
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
var sendTelegramMessageBodySchema = external_exports.object({
|
|
228
|
+
botId: external_exports.string().min(1, "Bot ID is required"),
|
|
229
|
+
chatId: external_exports.string().min(1, "Chat ID is required"),
|
|
230
|
+
text: external_exports.string().min(1, "Message text is required"),
|
|
231
|
+
replyToMessageId: external_exports.number().int().positive().optional(),
|
|
232
|
+
messageThreadId: external_exports.number().int().positive().optional()
|
|
233
|
+
});
|
|
234
|
+
var sendTelegramMessageResponseSchema = external_exports.object({
|
|
235
|
+
ok: external_exports.literal(true),
|
|
236
|
+
messageId: external_exports.number().int(),
|
|
237
|
+
chatId: external_exports.string()
|
|
238
|
+
});
|
|
239
|
+
var integrationsTelegramMessageContract = c.router({
|
|
240
|
+
sendMessage: {
|
|
241
|
+
method: "POST",
|
|
242
|
+
path: "/api/zero/integrations/telegram/message",
|
|
243
|
+
headers: authHeadersSchema,
|
|
244
|
+
body: sendTelegramMessageBodySchema,
|
|
245
|
+
responses: {
|
|
246
|
+
200: sendTelegramMessageResponseSchema,
|
|
247
|
+
400: apiErrorSchema,
|
|
248
|
+
401: apiErrorSchema,
|
|
249
|
+
403: apiErrorSchema,
|
|
250
|
+
404: apiErrorSchema,
|
|
251
|
+
502: apiErrorSchema
|
|
252
|
+
},
|
|
253
|
+
summary: "Send a Telegram message via org bot token"
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
var teamsAdaptiveCardSchema = external_exports.object({
|
|
257
|
+
type: external_exports.literal("AdaptiveCard"),
|
|
258
|
+
version: external_exports.string().min(1),
|
|
259
|
+
body: external_exports.array(external_exports.record(external_exports.string(), external_exports.unknown())).optional(),
|
|
260
|
+
actions: external_exports.array(external_exports.record(external_exports.string(), external_exports.unknown())).optional()
|
|
261
|
+
}).passthrough();
|
|
262
|
+
var sendTeamsMessageBodySchema = external_exports.object({
|
|
263
|
+
conversationId: external_exports.string().min(1, "Conversation ID is required").optional(),
|
|
264
|
+
user: external_exports.string().min(1, "Teams user ID is required").optional(),
|
|
265
|
+
text: external_exports.string().min(1, "Message text is required").optional(),
|
|
266
|
+
activityId: external_exports.string().min(1, "Activity ID is required").optional(),
|
|
267
|
+
card: teamsAdaptiveCardSchema.optional()
|
|
268
|
+
}).refine(
|
|
269
|
+
(body) => {
|
|
270
|
+
return Boolean(body.conversationId) !== Boolean(body.user);
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
message: "Exactly one of conversationId or user is required",
|
|
274
|
+
path: ["conversationId"]
|
|
275
|
+
}
|
|
276
|
+
).refine(
|
|
277
|
+
(body) => {
|
|
278
|
+
return Boolean(body.text) || Boolean(body.card);
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
message: "Message text or card is required",
|
|
282
|
+
path: ["text"]
|
|
283
|
+
}
|
|
284
|
+
).refine(
|
|
285
|
+
(body) => {
|
|
286
|
+
return !(body.user && body.activityId);
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
message: "activityId can only be used with conversationId",
|
|
290
|
+
path: ["activityId"]
|
|
291
|
+
}
|
|
292
|
+
);
|
|
293
|
+
var sendTeamsMessageResponseSchema = external_exports.object({
|
|
294
|
+
ok: external_exports.literal(true),
|
|
295
|
+
activityId: external_exports.string().optional(),
|
|
296
|
+
conversationId: external_exports.string()
|
|
297
|
+
});
|
|
298
|
+
var integrationsTeamsMessageContract = c.router({
|
|
299
|
+
sendMessage: {
|
|
300
|
+
method: "POST",
|
|
301
|
+
path: "/api/zero/integrations/teams/message",
|
|
302
|
+
headers: authHeadersSchema,
|
|
303
|
+
body: sendTeamsMessageBodySchema,
|
|
304
|
+
responses: {
|
|
305
|
+
200: sendTeamsMessageResponseSchema,
|
|
306
|
+
400: apiErrorSchema,
|
|
307
|
+
401: apiErrorSchema,
|
|
308
|
+
403: apiErrorSchema,
|
|
309
|
+
404: apiErrorSchema,
|
|
310
|
+
502: apiErrorSchema
|
|
311
|
+
},
|
|
312
|
+
summary: "Send a Microsoft Teams message via org bot"
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
var sendPhoneMessageBodySchema = external_exports.object({
|
|
316
|
+
agentphoneAgentId: external_exports.string().min(1, "AgentPhone agent ID is required").optional(),
|
|
317
|
+
toNumber: external_exports.string().min(1, "Phone number is required"),
|
|
318
|
+
text: external_exports.string().min(1, "Message text is required")
|
|
319
|
+
});
|
|
320
|
+
var sendPhoneMessageResponseSchema = external_exports.object({
|
|
321
|
+
ok: external_exports.literal(true),
|
|
322
|
+
messageId: external_exports.string(),
|
|
323
|
+
channel: external_exports.string().nullable(),
|
|
324
|
+
toNumber: external_exports.string()
|
|
325
|
+
});
|
|
326
|
+
var integrationsPhoneMessageContract = c.router({
|
|
327
|
+
sendMessage: {
|
|
328
|
+
method: "POST",
|
|
329
|
+
path: "/api/zero/integrations/phone/message",
|
|
330
|
+
headers: authHeadersSchema,
|
|
331
|
+
body: sendPhoneMessageBodySchema,
|
|
332
|
+
responses: {
|
|
333
|
+
200: sendPhoneMessageResponseSchema,
|
|
334
|
+
400: apiErrorSchema,
|
|
335
|
+
401: apiErrorSchema,
|
|
336
|
+
403: apiErrorSchema,
|
|
337
|
+
404: apiErrorSchema,
|
|
338
|
+
502: apiErrorSchema
|
|
339
|
+
},
|
|
340
|
+
summary: "Send an AgentPhone message"
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
var phoneDownloadFileQuerySchema = external_exports.object({
|
|
344
|
+
file_id: external_exports.string().min(1, "file_id query parameter is required")
|
|
345
|
+
});
|
|
346
|
+
var integrationsPhoneDownloadFileContract = c.router({
|
|
347
|
+
download: {
|
|
348
|
+
method: "GET",
|
|
349
|
+
path: "/api/zero/integrations/phone/download-file",
|
|
350
|
+
headers: authHeadersSchema,
|
|
351
|
+
query: phoneDownloadFileQuerySchema,
|
|
352
|
+
responses: {
|
|
353
|
+
200: c.type(),
|
|
354
|
+
400: apiErrorSchema,
|
|
355
|
+
401: apiErrorSchema,
|
|
356
|
+
403: apiErrorSchema,
|
|
357
|
+
404: apiErrorSchema,
|
|
358
|
+
413: apiErrorSchema,
|
|
359
|
+
502: apiErrorSchema
|
|
360
|
+
},
|
|
361
|
+
summary: "Download an AgentPhone media attachment"
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
var telegramBotTokenStatusSchema = external_exports.enum(["valid", "invalid", "unknown"]);
|
|
365
|
+
var telegramConnectedUserSchema = external_exports.object({
|
|
366
|
+
telegramUserId: external_exports.string(),
|
|
367
|
+
telegramUsername: external_exports.string().nullable(),
|
|
368
|
+
telegramDisplayName: external_exports.string().nullable()
|
|
369
|
+
});
|
|
370
|
+
var telegramBotListItemSchema = external_exports.object({
|
|
371
|
+
id: external_exports.string(),
|
|
372
|
+
kind: external_exports.enum(["custom", "official"]).optional(),
|
|
373
|
+
username: external_exports.string().nullable(),
|
|
374
|
+
agent: external_exports.object({ id: external_exports.string(), name: external_exports.string() }).nullable(),
|
|
375
|
+
isOwner: external_exports.boolean(),
|
|
376
|
+
isConnected: external_exports.boolean(),
|
|
377
|
+
connectedUser: telegramConnectedUserSchema.nullable().optional(),
|
|
378
|
+
tokenStatus: telegramBotTokenStatusSchema,
|
|
379
|
+
official: external_exports.object({
|
|
380
|
+
configured: external_exports.boolean(),
|
|
381
|
+
usesDefaultAgent: external_exports.boolean(),
|
|
382
|
+
linkedTelegramUserId: external_exports.string().nullable()
|
|
383
|
+
}).optional()
|
|
384
|
+
});
|
|
385
|
+
var listTelegramBotsResponseSchema = external_exports.object({
|
|
386
|
+
bots: external_exports.array(telegramBotListItemSchema)
|
|
387
|
+
});
|
|
388
|
+
var integrationsTelegramBotListContract = c.router({
|
|
389
|
+
listBots: {
|
|
390
|
+
method: "GET",
|
|
391
|
+
path: "/api/zero/integrations/telegram/bots",
|
|
392
|
+
headers: authHeadersSchema,
|
|
393
|
+
responses: {
|
|
394
|
+
200: listTelegramBotsResponseSchema,
|
|
395
|
+
401: apiErrorSchema,
|
|
396
|
+
403: apiErrorSchema
|
|
397
|
+
},
|
|
398
|
+
summary: "List Telegram bots available in the authenticated user's org"
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
var slackUploadInitBodySchema = external_exports.object({
|
|
402
|
+
filename: external_exports.string().min(1, "Filename is required"),
|
|
403
|
+
length: external_exports.number().int().positive("File length must be a positive integer"),
|
|
404
|
+
...directUploadCapabilityShape,
|
|
405
|
+
canonical: external_exports.object({
|
|
406
|
+
operationId: external_exports.string().uuid(),
|
|
407
|
+
contentType: external_exports.string().min(1).max(200),
|
|
408
|
+
checksumSha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
409
|
+
channel: external_exports.string().min(1, "Channel ID is required"),
|
|
410
|
+
threadTs: external_exports.string().optional(),
|
|
411
|
+
title: external_exports.string().optional(),
|
|
412
|
+
initialComment: external_exports.string().optional()
|
|
413
|
+
}).optional()
|
|
414
|
+
});
|
|
415
|
+
var directSlackUploadInitResponseSchema = external_exports.object({
|
|
416
|
+
uploadUrl: external_exports.string(),
|
|
417
|
+
fileId: external_exports.string()
|
|
418
|
+
});
|
|
419
|
+
var canonicalSlackUploadInitResponseSchema = external_exports.object({
|
|
420
|
+
kind: external_exports.literal("canonical"),
|
|
421
|
+
assetId: external_exports.string().uuid(),
|
|
422
|
+
operationId: external_exports.string().uuid(),
|
|
423
|
+
uploadUrl: external_exports.string().url().optional(),
|
|
424
|
+
url: external_exports.string().url(),
|
|
425
|
+
...directUploadResponseShape
|
|
426
|
+
});
|
|
427
|
+
var slackUploadInitResponseSchema = external_exports.union([
|
|
428
|
+
directSlackUploadInitResponseSchema,
|
|
429
|
+
canonicalSlackUploadInitResponseSchema
|
|
430
|
+
]);
|
|
431
|
+
var integrationsSlackUploadInitContract = c.router({
|
|
432
|
+
init: {
|
|
433
|
+
method: "POST",
|
|
434
|
+
path: "/api/zero/integrations/slack/upload-file/init",
|
|
435
|
+
headers: authHeadersSchema,
|
|
436
|
+
body: slackUploadInitBodySchema,
|
|
437
|
+
responses: {
|
|
438
|
+
200: slackUploadInitResponseSchema,
|
|
439
|
+
400: apiErrorSchema,
|
|
440
|
+
401: apiErrorSchema,
|
|
441
|
+
403: apiErrorSchema,
|
|
442
|
+
404: apiErrorSchema
|
|
443
|
+
},
|
|
444
|
+
summary: "Get a pre-signed Slack upload URL via org bot token"
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
var slackUploadMaterializeBodySchema = external_exports.object({
|
|
448
|
+
assetId: external_exports.string().uuid(),
|
|
449
|
+
operationId: external_exports.string().uuid()
|
|
450
|
+
});
|
|
451
|
+
var slackUploadMaterializeResponseSchema = external_exports.object({
|
|
452
|
+
assetId: external_exports.string().uuid(),
|
|
453
|
+
url: external_exports.string().url(),
|
|
454
|
+
delivery: external_exports.discriminatedUnion("status", [
|
|
455
|
+
external_exports.object({
|
|
456
|
+
status: external_exports.literal("pending"),
|
|
457
|
+
uploadUrl: external_exports.string(),
|
|
458
|
+
fileId: external_exports.string()
|
|
459
|
+
}),
|
|
460
|
+
external_exports.object({
|
|
461
|
+
status: external_exports.literal("delivered"),
|
|
462
|
+
fileId: external_exports.string(),
|
|
463
|
+
permalink: external_exports.string()
|
|
464
|
+
}),
|
|
465
|
+
external_exports.object({
|
|
466
|
+
status: external_exports.literal("failed"),
|
|
467
|
+
message: external_exports.string(),
|
|
468
|
+
retryable: external_exports.boolean()
|
|
469
|
+
})
|
|
470
|
+
])
|
|
471
|
+
});
|
|
472
|
+
var integrationsSlackUploadMaterializeContract = c.router({
|
|
473
|
+
materialize: {
|
|
474
|
+
method: "POST",
|
|
475
|
+
path: "/api/zero/integrations/slack/upload-file/materialize",
|
|
476
|
+
headers: authHeadersSchema,
|
|
477
|
+
body: slackUploadMaterializeBodySchema,
|
|
478
|
+
responses: {
|
|
479
|
+
200: slackUploadMaterializeResponseSchema,
|
|
480
|
+
400: apiErrorSchema,
|
|
481
|
+
401: apiErrorSchema,
|
|
482
|
+
403: apiErrorSchema,
|
|
483
|
+
404: apiErrorSchema
|
|
484
|
+
},
|
|
485
|
+
summary: "Materialize a canonical Slack publication before delivery"
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
var telegramUploadInitBodySchema = external_exports.object({
|
|
489
|
+
filename: external_exports.string().min(1, "Filename is required").max(255),
|
|
490
|
+
contentType: external_exports.string().min(1, "Content type is required").max(200),
|
|
491
|
+
length: external_exports.number().int().positive("File length must be a positive integer"),
|
|
492
|
+
...directUploadCapabilityShape
|
|
493
|
+
});
|
|
494
|
+
var telegramUploadInitResponseSchema = external_exports.object({
|
|
495
|
+
uploadId: external_exports.string().uuid(),
|
|
496
|
+
uploadUrl: external_exports.string(),
|
|
497
|
+
fileUrl: external_exports.string(),
|
|
498
|
+
filename: external_exports.string(),
|
|
499
|
+
contentType: external_exports.string(),
|
|
500
|
+
size: external_exports.number().int().nonnegative(),
|
|
501
|
+
...directUploadResponseShape
|
|
502
|
+
});
|
|
503
|
+
var integrationsTelegramUploadInitContract = c.router({
|
|
504
|
+
init: {
|
|
505
|
+
method: "POST",
|
|
506
|
+
path: "/api/zero/integrations/telegram/upload-file/init",
|
|
507
|
+
headers: authHeadersSchema,
|
|
508
|
+
body: telegramUploadInitBodySchema,
|
|
509
|
+
responses: {
|
|
510
|
+
200: telegramUploadInitResponseSchema,
|
|
511
|
+
400: apiErrorSchema,
|
|
512
|
+
401: apiErrorSchema,
|
|
513
|
+
403: apiErrorSchema
|
|
514
|
+
},
|
|
515
|
+
summary: "Get a pre-signed upload URL for Telegram file delivery"
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
var teamsUploadInitBodySchema = external_exports.object({
|
|
519
|
+
filename: external_exports.string().min(1, "Filename is required").max(255),
|
|
520
|
+
contentType: external_exports.string().min(1, "Content type is required").max(200),
|
|
521
|
+
length: external_exports.number().int().positive("File length must be a positive integer"),
|
|
522
|
+
...directUploadCapabilityShape
|
|
523
|
+
});
|
|
524
|
+
var teamsUploadInitResponseSchema = external_exports.object({
|
|
525
|
+
uploadId: external_exports.string().uuid(),
|
|
526
|
+
uploadUrl: external_exports.string(),
|
|
527
|
+
fileUrl: external_exports.string(),
|
|
528
|
+
filename: external_exports.string(),
|
|
529
|
+
contentType: external_exports.string(),
|
|
530
|
+
size: external_exports.number().int().nonnegative(),
|
|
531
|
+
...directUploadResponseShape
|
|
532
|
+
});
|
|
533
|
+
var integrationsTeamsUploadInitContract = c.router({
|
|
534
|
+
init: {
|
|
535
|
+
method: "POST",
|
|
536
|
+
path: "/api/zero/integrations/teams/upload-file/init",
|
|
537
|
+
headers: authHeadersSchema,
|
|
538
|
+
body: teamsUploadInitBodySchema,
|
|
539
|
+
responses: {
|
|
540
|
+
200: teamsUploadInitResponseSchema,
|
|
541
|
+
400: apiErrorSchema,
|
|
542
|
+
401: apiErrorSchema,
|
|
543
|
+
403: apiErrorSchema
|
|
544
|
+
},
|
|
545
|
+
summary: "Get a pre-signed upload URL for Microsoft Teams file delivery"
|
|
546
|
+
}
|
|
547
|
+
});
|
|
548
|
+
var telegramUploadCompleteBodySchema = external_exports.object({
|
|
549
|
+
uploadId: external_exports.string().uuid("Upload ID must be a UUID"),
|
|
550
|
+
botId: external_exports.string().min(1, "Bot ID is required"),
|
|
551
|
+
chatId: external_exports.string().min(1, "Chat ID is required"),
|
|
552
|
+
contentType: external_exports.string().min(1).max(200).optional(),
|
|
553
|
+
caption: external_exports.string().max(1024).optional(),
|
|
554
|
+
messageThreadId: external_exports.number().int().positive().optional()
|
|
555
|
+
});
|
|
556
|
+
var telegramUploadCompleteResponseSchema = external_exports.object({
|
|
557
|
+
messageId: external_exports.number().int(),
|
|
558
|
+
chatId: external_exports.string(),
|
|
559
|
+
fileId: external_exports.string().optional(),
|
|
560
|
+
filename: external_exports.string(),
|
|
561
|
+
mimetype: external_exports.string(),
|
|
562
|
+
size: external_exports.number().int().nonnegative(),
|
|
563
|
+
url: external_exports.string()
|
|
564
|
+
});
|
|
565
|
+
var integrationsTelegramUploadCompleteContract = c.router({
|
|
566
|
+
complete: {
|
|
567
|
+
method: "POST",
|
|
568
|
+
path: "/api/zero/integrations/telegram/upload-file/complete",
|
|
569
|
+
headers: authHeadersSchema,
|
|
570
|
+
body: telegramUploadCompleteBodySchema,
|
|
571
|
+
responses: {
|
|
572
|
+
200: telegramUploadCompleteResponseSchema,
|
|
573
|
+
400: apiErrorSchema,
|
|
574
|
+
401: apiErrorSchema,
|
|
575
|
+
403: apiErrorSchema,
|
|
576
|
+
404: apiErrorSchema,
|
|
577
|
+
502: apiErrorSchema
|
|
578
|
+
},
|
|
579
|
+
summary: "Finalize Telegram file upload and send it to a chat"
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
var teamsUploadCompleteBodySchema = external_exports.object({
|
|
583
|
+
uploadId: external_exports.string().uuid("Upload ID must be a UUID"),
|
|
584
|
+
conversationId: external_exports.string().min(1, "Conversation ID is required"),
|
|
585
|
+
activityId: external_exports.string().min(1, "Activity ID is required").optional(),
|
|
586
|
+
contentType: external_exports.string().min(1).max(200).optional(),
|
|
587
|
+
text: external_exports.string().max(4e3).optional()
|
|
588
|
+
});
|
|
589
|
+
var teamsUploadCompleteResponseSchema = external_exports.object({
|
|
590
|
+
activityId: external_exports.string().optional(),
|
|
591
|
+
conversationId: external_exports.string(),
|
|
592
|
+
filename: external_exports.string(),
|
|
593
|
+
mimetype: external_exports.string(),
|
|
594
|
+
size: external_exports.number().int().nonnegative(),
|
|
595
|
+
url: external_exports.string()
|
|
596
|
+
});
|
|
597
|
+
var integrationsTeamsUploadCompleteContract = c.router({
|
|
598
|
+
complete: {
|
|
599
|
+
method: "POST",
|
|
600
|
+
path: "/api/zero/integrations/teams/upload-file/complete",
|
|
601
|
+
headers: authHeadersSchema,
|
|
602
|
+
body: teamsUploadCompleteBodySchema,
|
|
603
|
+
responses: {
|
|
604
|
+
200: teamsUploadCompleteResponseSchema,
|
|
605
|
+
400: apiErrorSchema,
|
|
606
|
+
401: apiErrorSchema,
|
|
607
|
+
403: apiErrorSchema,
|
|
608
|
+
404: apiErrorSchema,
|
|
609
|
+
502: apiErrorSchema
|
|
610
|
+
},
|
|
611
|
+
summary: "Finalize Microsoft Teams file upload and send it to a conversation"
|
|
612
|
+
}
|
|
613
|
+
});
|
|
614
|
+
var githubUploadInitBodySchema = external_exports.object({
|
|
615
|
+
filename: external_exports.string().min(1, "Filename is required").max(255),
|
|
616
|
+
contentType: external_exports.string().min(1, "Content type is required").max(200),
|
|
617
|
+
length: external_exports.number().int().positive("File length must be a positive integer"),
|
|
618
|
+
...directUploadCapabilityShape
|
|
619
|
+
});
|
|
620
|
+
var githubUploadInitResponseSchema = external_exports.object({
|
|
621
|
+
uploadId: external_exports.string().uuid(),
|
|
622
|
+
uploadUrl: external_exports.string(),
|
|
623
|
+
fileUrl: external_exports.string(),
|
|
624
|
+
filename: external_exports.string(),
|
|
625
|
+
contentType: external_exports.string(),
|
|
626
|
+
size: external_exports.number().int().nonnegative(),
|
|
627
|
+
...directUploadResponseShape
|
|
628
|
+
});
|
|
629
|
+
var integrationsGithubUploadInitContract = c.router({
|
|
630
|
+
init: {
|
|
631
|
+
method: "POST",
|
|
632
|
+
path: "/api/zero/integrations/github/upload-file/init",
|
|
633
|
+
headers: authHeadersSchema,
|
|
634
|
+
body: githubUploadInitBodySchema,
|
|
635
|
+
responses: {
|
|
636
|
+
200: githubUploadInitResponseSchema,
|
|
637
|
+
400: apiErrorSchema,
|
|
638
|
+
401: apiErrorSchema,
|
|
639
|
+
403: apiErrorSchema,
|
|
640
|
+
404: apiErrorSchema,
|
|
641
|
+
500: apiErrorSchema,
|
|
642
|
+
502: apiErrorSchema
|
|
643
|
+
},
|
|
644
|
+
summary: "Get a pre-signed upload URL for GitHub file delivery"
|
|
645
|
+
}
|
|
646
|
+
});
|
|
647
|
+
var githubUploadCompleteBodySchema = external_exports.object({
|
|
648
|
+
uploadId: external_exports.string().uuid("Upload ID must be a UUID"),
|
|
649
|
+
repo: external_exports.string().min(1, "Repository is required").regex(/^[^/\s]+\/[^/\s]+$/, "Repository must be owner/name"),
|
|
650
|
+
issueNumber: external_exports.number().int().positive("Issue or pull request number must be positive"),
|
|
651
|
+
contentType: external_exports.string().min(1).max(200).optional(),
|
|
652
|
+
caption: external_exports.string().max(65536).optional()
|
|
653
|
+
});
|
|
654
|
+
var githubUploadCompleteResponseSchema = external_exports.object({
|
|
655
|
+
commentId: external_exports.string(),
|
|
656
|
+
repo: external_exports.string(),
|
|
657
|
+
issueNumber: external_exports.number().int(),
|
|
658
|
+
filename: external_exports.string(),
|
|
659
|
+
mimetype: external_exports.string(),
|
|
660
|
+
size: external_exports.number().int().nonnegative(),
|
|
661
|
+
url: external_exports.string()
|
|
662
|
+
});
|
|
663
|
+
var integrationsGithubUploadCompleteContract = c.router({
|
|
664
|
+
complete: {
|
|
665
|
+
method: "POST",
|
|
666
|
+
path: "/api/zero/integrations/github/upload-file/complete",
|
|
667
|
+
headers: authHeadersSchema,
|
|
668
|
+
body: githubUploadCompleteBodySchema,
|
|
669
|
+
responses: {
|
|
670
|
+
200: githubUploadCompleteResponseSchema,
|
|
671
|
+
400: apiErrorSchema,
|
|
672
|
+
401: apiErrorSchema,
|
|
673
|
+
403: apiErrorSchema,
|
|
674
|
+
404: apiErrorSchema,
|
|
675
|
+
502: apiErrorSchema,
|
|
676
|
+
500: apiErrorSchema
|
|
677
|
+
},
|
|
678
|
+
summary: "Finalize GitHub file upload and post it to an issue or PR"
|
|
679
|
+
}
|
|
680
|
+
});
|
|
681
|
+
var phoneUploadInitBodySchema = external_exports.object({
|
|
682
|
+
filename: external_exports.string().min(1, "Filename is required").max(255),
|
|
683
|
+
contentType: external_exports.string().min(1, "Content type is required").max(200),
|
|
684
|
+
length: external_exports.number().int().positive("File length must be a positive integer"),
|
|
685
|
+
...directUploadCapabilityShape
|
|
686
|
+
});
|
|
687
|
+
var phoneUploadInitResponseSchema = external_exports.object({
|
|
688
|
+
uploadId: external_exports.string().uuid(),
|
|
689
|
+
uploadUrl: external_exports.string(),
|
|
690
|
+
fileUrl: external_exports.string(),
|
|
691
|
+
filename: external_exports.string(),
|
|
692
|
+
contentType: external_exports.string(),
|
|
693
|
+
size: external_exports.number().int().nonnegative(),
|
|
694
|
+
...directUploadResponseShape
|
|
695
|
+
});
|
|
696
|
+
var integrationsPhoneUploadInitContract = c.router({
|
|
697
|
+
init: {
|
|
698
|
+
method: "POST",
|
|
699
|
+
path: "/api/zero/integrations/phone/upload-file/init",
|
|
700
|
+
headers: authHeadersSchema,
|
|
701
|
+
body: phoneUploadInitBodySchema,
|
|
702
|
+
responses: {
|
|
703
|
+
200: phoneUploadInitResponseSchema,
|
|
704
|
+
400: apiErrorSchema,
|
|
705
|
+
401: apiErrorSchema,
|
|
706
|
+
403: apiErrorSchema
|
|
707
|
+
},
|
|
708
|
+
summary: "Get a pre-signed upload URL for AgentPhone file delivery"
|
|
709
|
+
}
|
|
710
|
+
});
|
|
711
|
+
var phoneUploadCompleteBodySchema = external_exports.object({
|
|
712
|
+
uploadId: external_exports.string().uuid("Upload ID must be a UUID"),
|
|
713
|
+
agentphoneAgentId: external_exports.string().min(1, "AgentPhone agent ID is required").optional(),
|
|
714
|
+
toNumber: external_exports.string().min(1, "Phone number is required"),
|
|
715
|
+
contentType: external_exports.string().min(1).max(200).optional(),
|
|
716
|
+
caption: external_exports.string().max(1024).optional()
|
|
717
|
+
});
|
|
718
|
+
var phoneUploadCompleteResponseSchema = external_exports.object({
|
|
719
|
+
messageId: external_exports.string(),
|
|
720
|
+
channel: external_exports.string().nullable(),
|
|
721
|
+
toNumber: external_exports.string(),
|
|
722
|
+
filename: external_exports.string(),
|
|
723
|
+
mimetype: external_exports.string(),
|
|
724
|
+
size: external_exports.number().int().nonnegative(),
|
|
725
|
+
url: external_exports.string()
|
|
726
|
+
});
|
|
727
|
+
var integrationsPhoneUploadCompleteContract = c.router({
|
|
728
|
+
complete: {
|
|
729
|
+
method: "POST",
|
|
730
|
+
path: "/api/zero/integrations/phone/upload-file/complete",
|
|
731
|
+
headers: authHeadersSchema,
|
|
732
|
+
body: phoneUploadCompleteBodySchema,
|
|
733
|
+
responses: {
|
|
734
|
+
200: phoneUploadCompleteResponseSchema,
|
|
735
|
+
400: apiErrorSchema,
|
|
736
|
+
401: apiErrorSchema,
|
|
737
|
+
403: apiErrorSchema,
|
|
738
|
+
404: apiErrorSchema,
|
|
739
|
+
502: apiErrorSchema
|
|
740
|
+
},
|
|
741
|
+
summary: "Finalize AgentPhone file upload and send it to a phone handle"
|
|
742
|
+
}
|
|
743
|
+
});
|
|
744
|
+
var slackUploadCompleteBodySchema = external_exports.object({
|
|
745
|
+
fileId: external_exports.string().min(1, "File ID is required"),
|
|
746
|
+
channel: external_exports.string().min(1, "Channel ID is required"),
|
|
747
|
+
threadTs: external_exports.string().optional(),
|
|
748
|
+
title: external_exports.string().optional(),
|
|
749
|
+
initialComment: external_exports.string().optional(),
|
|
750
|
+
canonicalAssetId: external_exports.string().uuid().optional(),
|
|
751
|
+
operationId: external_exports.string().uuid().optional(),
|
|
752
|
+
uploadError: external_exports.string().max(2e3).optional()
|
|
753
|
+
});
|
|
754
|
+
var slackUploadCompleteResponseSchema = external_exports.object({
|
|
755
|
+
fileId: external_exports.string(),
|
|
756
|
+
permalink: external_exports.string(),
|
|
757
|
+
assetId: external_exports.string().uuid().optional(),
|
|
758
|
+
assetUrl: external_exports.string().url().optional(),
|
|
759
|
+
deliveryStatus: external_exports.enum(["delivered", "failed"]).optional(),
|
|
760
|
+
deliveryError: external_exports.string().optional()
|
|
761
|
+
});
|
|
762
|
+
var integrationsSlackUploadCompleteContract = c.router({
|
|
763
|
+
complete: {
|
|
764
|
+
method: "POST",
|
|
765
|
+
path: "/api/zero/integrations/slack/upload-file/complete",
|
|
766
|
+
headers: authHeadersSchema,
|
|
767
|
+
body: slackUploadCompleteBodySchema,
|
|
768
|
+
responses: {
|
|
769
|
+
200: slackUploadCompleteResponseSchema,
|
|
770
|
+
400: apiErrorSchema,
|
|
771
|
+
401: apiErrorSchema,
|
|
772
|
+
403: apiErrorSchema,
|
|
773
|
+
404: apiErrorSchema
|
|
774
|
+
},
|
|
775
|
+
summary: "Finalize Slack file upload and share to channel"
|
|
776
|
+
}
|
|
777
|
+
});
|
|
778
|
+
|
|
779
|
+
export {
|
|
780
|
+
integrationsSlackMessageContract,
|
|
781
|
+
integrationsFeishuMessageContract,
|
|
782
|
+
FEISHU_FILE_UPLOAD_MAX_BYTES,
|
|
783
|
+
integrationsFeishuUploadInitContract,
|
|
784
|
+
integrationsFeishuUploadCompleteContract,
|
|
785
|
+
integrationsTelegramMessageContract,
|
|
786
|
+
integrationsTeamsMessageContract,
|
|
787
|
+
integrationsPhoneMessageContract,
|
|
788
|
+
integrationsTelegramBotListContract,
|
|
789
|
+
integrationsSlackUploadInitContract,
|
|
790
|
+
integrationsSlackUploadMaterializeContract,
|
|
791
|
+
integrationsTelegramUploadInitContract,
|
|
792
|
+
integrationsTeamsUploadInitContract,
|
|
793
|
+
integrationsTelegramUploadCompleteContract,
|
|
794
|
+
integrationsTeamsUploadCompleteContract,
|
|
795
|
+
integrationsGithubUploadInitContract,
|
|
796
|
+
integrationsGithubUploadCompleteContract,
|
|
797
|
+
integrationsPhoneUploadInitContract,
|
|
798
|
+
integrationsPhoneUploadCompleteContract,
|
|
799
|
+
integrationsSlackUploadCompleteContract
|
|
800
|
+
};
|
|
801
|
+
//# sourceMappingURL=chunk-PFWBO2VK.js.map
|