@vm0/cli 9.278.0 → 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-HUDTEGLK.js → agent-4F3XAJWN.js} +12 -6
- package/agent-4F3XAJWN.js.map +1 -0
- package/{banking-BMZONEXP.js → banking-CWQFQKZB.js} +61 -7
- package/banking-CWQFQKZB.js.map +1 -0
- package/{browser-LQP445CU.js → browser-BI6UFWPH.js} +4 -5
- package/browser-BI6UFWPH.js.map +1 -0
- package/{chat-UF7QAWUT.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-QC63TUJC.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-5ZZI2LSO.js → chunk-GHKWW4NC.js} +5 -5
- 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-V5ZVB7RJ.js → chunk-KKO2XGLQ.js} +1 -6
- 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-F2AM4RWA.js → chunk-RTEEWZUT.js} +2 -2
- package/{chunk-F2AM4RWA.js.map → chunk-RTEEWZUT.js.map} +1 -1
- package/{chunk-BRV4D3P2.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-V7A6ZFHR.js → chunk-SMPSKBAP.js} +25 -774
- package/chunk-SMPSKBAP.js.map +1 -0
- package/{chunk-E53W6UVQ.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-A6TMOGPR.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-RRD7BCCK.js → computer-use-6AEVW47F.js} +9 -7
- package/computer-use-6AEVW47F.js.map +1 -0
- package/{connector-XX7UU6XE.js → connector-XDQ6JEBU.js} +25 -13
- package/connector-XDQ6JEBU.js.map +1 -0
- package/{credit-GDNNAQRO.js → credit-JPQA5XPA.js} +8 -10
- package/credit-JPQA5XPA.js.map +1 -0
- package/{developer-support-IISP5UBI.js → developer-support-V7NZOU2P.js} +27 -7
- package/developer-support-V7NZOU2P.js.map +1 -0
- package/{doctor-IZM2TJOH.js → doctor-FJO24TG3.js} +13 -11
- package/doctor-FJO24TG3.js.map +1 -0
- package/{feishu-XB7SQBSI.js → feishu-PNOAM33Q.js} +99 -9
- package/feishu-PNOAM33Q.js.map +1 -0
- package/{finance-OGWHKQLU.js → finance-55OJ6GYP.js} +49 -9
- package/finance-55OJ6GYP.js.map +1 -0
- package/{generate-AA2PVOYQ.js → generate-XUKBK523.js} +26 -21
- package/generate-XUKBK523.js.map +1 -0
- package/{github-VJVIBTVF.js → github-V4MD2PMM.js} +83 -8
- package/github-V4MD2PMM.js.map +1 -0
- package/{goal-7SYVHDTK.js → goal-FS5FJKVU.js} +69 -13
- package/goal-FS5FJKVU.js.map +1 -0
- package/{host-UVQMIOBA.js → host-GITTJ6PR.js} +124 -10
- package/host-GITTJ6PR.js.map +1 -0
- package/{logs-PIS4X24E.js → logs-EEUIGYUD.js} +51 -11
- package/logs-EEUIGYUD.js.map +1 -0
- package/{mail-L33OSQ2R.js → mail-G4SAJSBD.js} +39 -8
- package/mail-G4SAJSBD.js.map +1 -0
- package/{maps-D5XTXU5U.js → maps-7ANNU3BX.js} +65 -11
- package/maps-7ANNU3BX.js.map +1 -0
- package/{model-ZFMRECDM.js → model-DSPDCJLB.js} +6 -6
- package/model-DSPDCJLB.js.map +1 -0
- package/{model-provider-EZZ2DRYZ.js → model-provider-RZQ45PNG.js} +6 -6
- package/model-provider-RZQ45PNG.js.map +1 -0
- package/package.json +1 -1
- package/{people-search-PFTIO2QS.js → people-search-I7PUMF5M.js} +22 -6
- package/people-search-I7PUMF5M.js.map +1 -0
- package/{phone-6SG5ZUNL.js → phone-SSAPGMTW.js} +90 -9
- package/phone-SSAPGMTW.js.map +1 -0
- package/{recognize-LLU6J3SW.js → recognize-D7VORZBN.js} +27 -9
- package/recognize-D7VORZBN.js.map +1 -0
- package/{resource-FGUSXS4G.js → resource-76IV3TMW.js} +21 -7
- package/resource-76IV3TMW.js.map +1 -0
- package/{scrape-BAUZ2YFD.js → scrape-JBDLNTLB.js} +22 -6
- package/scrape-JBDLNTLB.js.map +1 -0
- package/{search-DLO5RXRM.js → search-UNZNUTZX.js} +29 -9
- package/search-UNZNUTZX.js.map +1 -0
- package/{slack-CVATPKP3.js → slack-AAH6GG2W.js} +103 -11
- package/slack-AAH6GG2W.js.map +1 -0
- package/{teams-ZZYO6YIK.js → teams-6OPXE4TX.js} +90 -9
- package/teams-6OPXE4TX.js.map +1 -0
- package/{telegram-VY7T4YAR.js → telegram-RRZG73RT.js} +101 -10
- package/telegram-RRZG73RT.js.map +1 -0
- package/{upgrade-GFA4ZUU4.js → upgrade-I5IL4UQL.js} +3 -4
- package/upgrade-I5IL4UQL.js.map +1 -0
- package/{video-STFG7BET.js → video-HV44W4X7.js} +5 -4
- package/video-HV44W4X7.js.map +1 -0
- package/{weather-ISJEHJWR.js → weather-EQ7CSADB.js} +70 -16
- package/weather-EQ7CSADB.js.map +1 -0
- package/{web-YN4CVHK7.js → web-6LIMWEOZ.js} +5 -5
- package/web-6LIMWEOZ.js.map +1 -0
- package/{web-search-PC7IECND.js → web-search-AT7WONZN.js} +22 -6
- package/web-search-AT7WONZN.js.map +1 -0
- package/{whoami-KXFXZGM6.js → whoami-RKTLLSI4.js} +16 -7
- package/whoami-RKTLLSI4.js.map +1 -0
- package/{workflow-O7YZHB7A.js → workflow-ZH32P622.js} +135 -39
- package/workflow-ZH32P622.js.map +1 -0
- package/zero.js +40 -40
- package/agent-HUDTEGLK.js.map +0 -1
- package/banking-BMZONEXP.js.map +0 -1
- package/browser-LQP445CU.js.map +0 -1
- package/chat-UF7QAWUT.js.map +0 -1
- package/chunk-2W73DZDW.js +0 -32
- package/chunk-2W73DZDW.js.map +0 -1
- package/chunk-6PN6QGIM.js +0 -11405
- package/chunk-6PN6QGIM.js.map +0 -1
- package/chunk-A6TMOGPR.js.map +0 -1
- package/chunk-ANOLYIPL.js +0 -10
- package/chunk-ANOLYIPL.js.map +0 -1
- package/chunk-E53W6UVQ.js.map +0 -1
- package/chunk-V5ZVB7RJ.js.map +0 -1
- package/chunk-V7A6ZFHR.js.map +0 -1
- package/computer-use-RRD7BCCK.js.map +0 -1
- package/connector-XX7UU6XE.js.map +0 -1
- package/credit-GDNNAQRO.js.map +0 -1
- package/developer-support-IISP5UBI.js.map +0 -1
- package/doctor-IZM2TJOH.js.map +0 -1
- package/feishu-XB7SQBSI.js.map +0 -1
- package/finance-OGWHKQLU.js.map +0 -1
- package/generate-AA2PVOYQ.js.map +0 -1
- package/github-VJVIBTVF.js.map +0 -1
- package/goal-7SYVHDTK.js.map +0 -1
- package/host-UVQMIOBA.js.map +0 -1
- package/logs-PIS4X24E.js.map +0 -1
- package/mail-L33OSQ2R.js.map +0 -1
- package/maps-D5XTXU5U.js.map +0 -1
- package/model-ZFMRECDM.js.map +0 -1
- package/model-provider-EZZ2DRYZ.js.map +0 -1
- package/people-search-PFTIO2QS.js.map +0 -1
- package/phone-6SG5ZUNL.js.map +0 -1
- package/recognize-LLU6J3SW.js.map +0 -1
- package/resource-FGUSXS4G.js.map +0 -1
- package/scrape-BAUZ2YFD.js.map +0 -1
- package/search-DLO5RXRM.js.map +0 -1
- package/slack-CVATPKP3.js.map +0 -1
- package/teams-ZZYO6YIK.js.map +0 -1
- package/telegram-VY7T4YAR.js.map +0 -1
- package/upgrade-GFA4ZUU4.js.map +0 -1
- package/video-STFG7BET.js.map +0 -1
- package/weather-ISJEHJWR.js.map +0 -1
- package/web-YN4CVHK7.js.map +0 -1
- package/web-search-PC7IECND.js.map +0 -1
- package/whoami-KXFXZGM6.js.map +0 -1
- package/workflow-O7YZHB7A.js.map +0 -1
- /package/{chunk-QC63TUJC.js.map → chunk-C62A6LD6.js.map} +0 -0
- /package/{chunk-5ZZI2LSO.js.map → chunk-GHKWW4NC.js.map} +0 -0
- /package/{chunk-BRV4D3P2.js.map → chunk-RUKMHBNQ.js.map} +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
external_exports
|
|
6
|
+
} from "./chunk-GHKWW4NC.js";
|
|
7
|
+
import {
|
|
8
|
+
init_esm_shims
|
|
9
|
+
} from "./chunk-AUWSMG4F.js";
|
|
10
|
+
|
|
11
|
+
// ../../packages/api-contracts/src/contracts/org-members.ts
|
|
12
|
+
init_esm_shims();
|
|
13
|
+
var orgRoleSchema = external_exports.enum(["admin", "member"]);
|
|
14
|
+
var orgMemberSchema = external_exports.object({
|
|
15
|
+
userId: external_exports.string(),
|
|
16
|
+
email: external_exports.string(),
|
|
17
|
+
firstName: external_exports.string().nullable(),
|
|
18
|
+
lastName: external_exports.string().nullable(),
|
|
19
|
+
imageUrl: external_exports.string(),
|
|
20
|
+
role: orgRoleSchema,
|
|
21
|
+
joinedAt: external_exports.string()
|
|
22
|
+
});
|
|
23
|
+
var orgPendingInvitationSchema = external_exports.object({
|
|
24
|
+
id: external_exports.string(),
|
|
25
|
+
email: external_exports.string(),
|
|
26
|
+
role: orgRoleSchema,
|
|
27
|
+
createdAt: external_exports.string()
|
|
28
|
+
});
|
|
29
|
+
var orgMembershipRequestSchema = external_exports.object({
|
|
30
|
+
id: external_exports.string(),
|
|
31
|
+
userId: external_exports.string(),
|
|
32
|
+
email: external_exports.string(),
|
|
33
|
+
firstName: external_exports.string().nullable(),
|
|
34
|
+
lastName: external_exports.string().nullable(),
|
|
35
|
+
imageUrl: external_exports.string(),
|
|
36
|
+
createdAt: external_exports.string()
|
|
37
|
+
});
|
|
38
|
+
var revokeInvitationRequestSchema = external_exports.object({
|
|
39
|
+
invitationId: external_exports.string()
|
|
40
|
+
});
|
|
41
|
+
var membershipRequestActionSchema = external_exports.object({
|
|
42
|
+
requestId: external_exports.string()
|
|
43
|
+
});
|
|
44
|
+
var orgMembersResponseSchema = external_exports.object({
|
|
45
|
+
name: external_exports.string(),
|
|
46
|
+
role: orgRoleSchema,
|
|
47
|
+
members: external_exports.array(orgMemberSchema),
|
|
48
|
+
pendingInvitations: external_exports.array(orgPendingInvitationSchema).optional(),
|
|
49
|
+
membershipRequests: external_exports.array(orgMembershipRequestSchema).optional(),
|
|
50
|
+
createdAt: external_exports.string()
|
|
51
|
+
});
|
|
52
|
+
var inviteOrgMemberRequestSchema = external_exports.object({
|
|
53
|
+
email: external_exports.string().email(),
|
|
54
|
+
role: orgRoleSchema.optional().default("member")
|
|
55
|
+
});
|
|
56
|
+
var removeOrgMemberRequestSchema = external_exports.object({
|
|
57
|
+
email: external_exports.string().email()
|
|
58
|
+
});
|
|
59
|
+
var updateOrgMemberRoleRequestSchema = external_exports.object({
|
|
60
|
+
email: external_exports.string().email(),
|
|
61
|
+
role: orgRoleSchema
|
|
62
|
+
});
|
|
63
|
+
var orgMessageResponseSchema = external_exports.object({
|
|
64
|
+
message: external_exports.string()
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// ../../packages/api-contracts/src/contracts/orgs.ts
|
|
68
|
+
init_esm_shims();
|
|
69
|
+
var orgTierSchema = external_exports.enum([
|
|
70
|
+
"free",
|
|
71
|
+
"limited-free-1",
|
|
72
|
+
"pro-suspend",
|
|
73
|
+
"pro",
|
|
74
|
+
"team",
|
|
75
|
+
"custom"
|
|
76
|
+
]);
|
|
77
|
+
var ORG_TIER_SET = new Set(orgTierSchema.options);
|
|
78
|
+
var orgResponseSchema = external_exports.object({
|
|
79
|
+
id: external_exports.string(),
|
|
80
|
+
slug: external_exports.string(),
|
|
81
|
+
name: external_exports.string(),
|
|
82
|
+
tier: external_exports.string().optional(),
|
|
83
|
+
role: orgRoleSchema.optional(),
|
|
84
|
+
createdBy: external_exports.string().optional()
|
|
85
|
+
});
|
|
86
|
+
var updateOrgRequestSchema = external_exports.object({
|
|
87
|
+
name: external_exports.string().min(1).max(128)
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
export {
|
|
91
|
+
revokeInvitationRequestSchema,
|
|
92
|
+
membershipRequestActionSchema,
|
|
93
|
+
orgMembersResponseSchema,
|
|
94
|
+
inviteOrgMemberRequestSchema,
|
|
95
|
+
removeOrgMemberRequestSchema,
|
|
96
|
+
updateOrgMemberRoleRequestSchema,
|
|
97
|
+
orgMessageResponseSchema,
|
|
98
|
+
orgTierSchema,
|
|
99
|
+
orgResponseSchema,
|
|
100
|
+
updateOrgRequestSchema
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=chunk-A6ZRMNM3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/org-members.ts","../../../packages/api-contracts/src/contracts/orgs.ts"],"sourcesContent":["import { z } from \"zod\";\n\n/**\n * Org role enum\n */\nexport const orgRoleSchema = z.enum([\"admin\", \"member\"]);\nexport type OrgRole = z.infer<typeof orgRoleSchema>;\n\n/**\n * Org member schema\n */\nexport const orgMemberSchema = z.object({\n userId: z.string(),\n email: z.string(),\n firstName: z.string().nullable(),\n lastName: z.string().nullable(),\n imageUrl: z.string(),\n role: orgRoleSchema,\n joinedAt: z.string(),\n});\nexport type OrgMember = z.infer<typeof orgMemberSchema>;\n\n/**\n * Pending invitation schema\n */\nexport const orgPendingInvitationSchema = z.object({\n id: z.string(),\n email: z.string(),\n role: orgRoleSchema,\n createdAt: z.string(),\n});\nexport type OrgPendingInvitation = z.infer<typeof orgPendingInvitationSchema>;\n\n/**\n * Membership request schema\n */\nexport const orgMembershipRequestSchema = z.object({\n id: z.string(),\n userId: z.string(),\n email: z.string(),\n firstName: z.string().nullable(),\n lastName: z.string().nullable(),\n imageUrl: z.string(),\n createdAt: z.string(),\n});\nexport type OrgMembershipRequest = z.infer<typeof orgMembershipRequestSchema>;\n\n/**\n * Revoke invitation request schema\n */\nexport const revokeInvitationRequestSchema = z.object({\n invitationId: z.string(),\n});\nexport type RevokeInvitationRequest = z.infer<\n typeof revokeInvitationRequestSchema\n>;\n\n/**\n * Membership request action schema\n */\nexport const membershipRequestActionSchema = z.object({\n requestId: z.string(),\n});\nexport type MembershipRequestAction = z.infer<\n typeof membershipRequestActionSchema\n>;\n\n/**\n * Org members response schema (status + members list)\n */\nexport const orgMembersResponseSchema = z.object({\n name: z.string(),\n role: orgRoleSchema,\n members: z.array(orgMemberSchema),\n pendingInvitations: z.array(orgPendingInvitationSchema).optional(),\n membershipRequests: z.array(orgMembershipRequestSchema).optional(),\n createdAt: z.string(),\n});\nexport type OrgMembersResponse = z.infer<typeof orgMembersResponseSchema>;\n\n/**\n * Invite member request schema\n */\nexport const inviteOrgMemberRequestSchema = z.object({\n email: z.string().email(),\n role: orgRoleSchema.optional().default(\"member\"),\n});\nexport type InviteOrgMemberRequest = z.infer<\n typeof inviteOrgMemberRequestSchema\n>;\n\n/**\n * Remove member request schema\n */\nexport const removeOrgMemberRequestSchema = z.object({\n email: z.string().email(),\n});\nexport type RemoveOrgMemberRequest = z.infer<\n typeof removeOrgMemberRequestSchema\n>;\n\n/**\n * Update member role request schema\n */\nexport const updateOrgMemberRoleRequestSchema = z.object({\n email: z.string().email(),\n role: orgRoleSchema,\n});\nexport type UpdateOrgMemberRoleRequest = z.infer<\n typeof updateOrgMemberRoleRequestSchema\n>;\n\n/**\n * Simple message response schema\n */\nexport const orgMessageResponseSchema = z.object({\n message: z.string(),\n});\nexport type OrgMessageResponse = z.infer<typeof orgMessageResponseSchema>;\n","import { z } from \"zod\";\nimport { orgRoleSchema } from \"./org-members\";\n\n/**\n * Org tier values\n */\nexport const orgTierSchema = z.enum([\n \"free\",\n \"limited-free-1\",\n \"pro-suspend\",\n \"pro\",\n \"team\",\n \"custom\",\n]);\nexport type OrgTier = z.infer<typeof orgTierSchema>;\n\nconst ORG_TIER_SET: ReadonlySet<string> = new Set(orgTierSchema.options);\n\nexport function isOrgTier(value: string | null | undefined): value is OrgTier {\n return typeof value === \"string\" && ORG_TIER_SET.has(value);\n}\n\n/**\n * Org response schema\n */\nexport const orgResponseSchema = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n tier: z.string().optional(),\n role: orgRoleSchema.optional(),\n createdBy: z.string().optional(),\n});\n\nexport type OrgResponse = z.infer<typeof orgResponseSchema>;\n\n/**\n * Update org request schema\n *\n * `name` is required: the endpoint only updates the org profile name, so an\n * optional field would let a body carrying only removed keys (`slug`,\n * `force`) parse into an empty no-op update.\n */\nexport const updateOrgRequestSchema = z.object({\n name: z.string().min(1).max(128),\n});\n\nexport type UpdateOrgRequest = z.infer<typeof updateOrgRequestSchema>;\n"],"mappings":";;;;;;;;;;;AAAA;AAKO,IAAM,gBAAgB,iBAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;AAMhD,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EACtC,QAAQ,iBAAE,OAAO;AAAA,EACjB,OAAO,iBAAE,OAAO;AAAA,EAChB,WAAW,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,iBAAE,OAAO;AAAA,EACnB,MAAM;AAAA,EACN,UAAU,iBAAE,OAAO;AACrB,CAAC;AAMM,IAAM,6BAA6B,iBAAE,OAAO;AAAA,EACjD,IAAI,iBAAE,OAAO;AAAA,EACb,OAAO,iBAAE,OAAO;AAAA,EAChB,MAAM;AAAA,EACN,WAAW,iBAAE,OAAO;AACtB,CAAC;AAMM,IAAM,6BAA6B,iBAAE,OAAO;AAAA,EACjD,IAAI,iBAAE,OAAO;AAAA,EACb,QAAQ,iBAAE,OAAO;AAAA,EACjB,OAAO,iBAAE,OAAO;AAAA,EAChB,WAAW,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,iBAAE,OAAO;AAAA,EACnB,WAAW,iBAAE,OAAO;AACtB,CAAC;AAMM,IAAM,gCAAgC,iBAAE,OAAO;AAAA,EACpD,cAAc,iBAAE,OAAO;AACzB,CAAC;AAQM,IAAM,gCAAgC,iBAAE,OAAO;AAAA,EACpD,WAAW,iBAAE,OAAO;AACtB,CAAC;AAQM,IAAM,2BAA2B,iBAAE,OAAO;AAAA,EAC/C,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM;AAAA,EACN,SAAS,iBAAE,MAAM,eAAe;AAAA,EAChC,oBAAoB,iBAAE,MAAM,0BAA0B,EAAE,SAAS;AAAA,EACjE,oBAAoB,iBAAE,MAAM,0BAA0B,EAAE,SAAS;AAAA,EACjE,WAAW,iBAAE,OAAO;AACtB,CAAC;AAMM,IAAM,+BAA+B,iBAAE,OAAO;AAAA,EACnD,OAAO,iBAAE,OAAO,EAAE,MAAM;AAAA,EACxB,MAAM,cAAc,SAAS,EAAE,QAAQ,QAAQ;AACjD,CAAC;AAQM,IAAM,+BAA+B,iBAAE,OAAO;AAAA,EACnD,OAAO,iBAAE,OAAO,EAAE,MAAM;AAC1B,CAAC;AAQM,IAAM,mCAAmC,iBAAE,OAAO;AAAA,EACvD,OAAO,iBAAE,OAAO,EAAE,MAAM;AAAA,EACxB,MAAM;AACR,CAAC;AAQM,IAAM,2BAA2B,iBAAE,OAAO;AAAA,EAC/C,SAAS,iBAAE,OAAO;AACpB,CAAC;;;ACrHD;AAMO,IAAM,gBAAgB,iBAAE,KAAK;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,eAAoC,IAAI,IAAI,cAAc,OAAO;AAShE,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,IAAI,iBAAE,OAAO;AAAA,EACb,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO;AAAA,EACf,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,cAAc,SAAS;AAAA,EAC7B,WAAW,iBAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAWM,IAAM,yBAAyB,iBAAE,OAAO;AAAA,EAC7C,MAAM,iBAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACjC,CAAC;","names":[]}
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
MODEL_PROVIDER_TYPES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GHKWW4NC.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-AUWSMG4F.js";
|
|
@@ -40,4 +40,4 @@ export {
|
|
|
40
40
|
formatModelProviderRoute,
|
|
41
41
|
formatModelPolicyStatus
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-C62A6LD6.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
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/registry-resources.ts
|
|
17
|
+
init_esm_shims();
|
|
18
|
+
var c = initContract();
|
|
19
|
+
var registryResourceDownloadContract = c.router({
|
|
20
|
+
download: {
|
|
21
|
+
method: "GET",
|
|
22
|
+
path: "/api/registry/resources/download",
|
|
23
|
+
headers: authHeadersSchema,
|
|
24
|
+
query: external_exports.object({
|
|
25
|
+
id: external_exports.string().min(1, "Resource id is required"),
|
|
26
|
+
expectedSha256: external_exports.string().regex(/^[a-f0-9]{64}$/)
|
|
27
|
+
}),
|
|
28
|
+
responses: {
|
|
29
|
+
200: external_exports.object({
|
|
30
|
+
url: external_exports.url(),
|
|
31
|
+
id: external_exports.string(),
|
|
32
|
+
type: external_exports.literal("tar.gz"),
|
|
33
|
+
sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
34
|
+
expiresInSeconds: external_exports.number().int().positive(),
|
|
35
|
+
versionId: external_exports.string(),
|
|
36
|
+
fileCount: external_exports.number().int().nonnegative(),
|
|
37
|
+
size: external_exports.number().nonnegative()
|
|
38
|
+
}),
|
|
39
|
+
400: apiErrorSchema,
|
|
40
|
+
401: apiErrorSchema,
|
|
41
|
+
403: apiErrorSchema,
|
|
42
|
+
404: apiErrorSchema,
|
|
43
|
+
500: apiErrorSchema
|
|
44
|
+
},
|
|
45
|
+
summary: "Get a presigned URL for a private registry resource archive"
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
registryResourceDownloadContract
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=chunk-CCTF3YVW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/registry-resources.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { authHeadersSchema, initContract } from \"./base\";\nimport { apiErrorSchema } from \"./errors\";\n\nconst c = initContract();\n\nexport const registryResourceDownloadContract = c.router({\n download: {\n method: \"GET\",\n path: \"/api/registry/resources/download\",\n headers: authHeadersSchema,\n query: z.object({\n id: z.string().min(1, \"Resource id is required\"),\n expectedSha256: z.string().regex(/^[a-f0-9]{64}$/),\n }),\n responses: {\n 200: z.object({\n url: z.url(),\n id: z.string(),\n type: z.literal(\"tar.gz\"),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n expiresInSeconds: z.number().int().positive(),\n versionId: z.string(),\n fileCount: z.number().int().nonnegative(),\n size: z.number().nonnegative(),\n }),\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 500: apiErrorSchema,\n },\n summary: \"Get a presigned URL for a private registry resource archive\",\n },\n});\n\nexport type RegistryResourceDownloadContract =\n typeof registryResourceDownloadContract;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAKA,IAAM,IAAI,aAAa;AAEhB,IAAM,mCAAmC,EAAE,OAAO;AAAA,EACvD,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,iBAAE,OAAO;AAAA,MACd,IAAI,iBAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,MAC/C,gBAAgB,iBAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,IACnD,CAAC;AAAA,IACD,WAAW;AAAA,MACT,KAAK,iBAAE,OAAO;AAAA,QACZ,KAAK,iBAAE,IAAI;AAAA,QACX,IAAI,iBAAE,OAAO;AAAA,QACb,MAAM,iBAAE,QAAQ,QAAQ;AAAA,QACxB,QAAQ,iBAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,QACzC,kBAAkB,iBAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,QAC5C,WAAW,iBAAE,OAAO;AAAA,QACpB,WAAW,iBAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,QACxC,MAAM,iBAAE,OAAO,EAAE,YAAY;AAAA,MAC/B,CAAC;AAAA,MACD,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,EACX;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
zeroComputerUseAuthorizationRequestsContract,
|
|
6
|
+
zeroComputerUseCommandContract,
|
|
7
|
+
zeroComputerUseHostsContract,
|
|
8
|
+
zeroComputerUsePluginCommandContract,
|
|
9
|
+
zeroComputerUseWriteCommandContract
|
|
10
|
+
} from "./chunk-SJPOFQJU.js";
|
|
11
|
+
import {
|
|
12
|
+
ApiRequestError,
|
|
13
|
+
cliClientHeaderApi,
|
|
14
|
+
getActiveToken,
|
|
15
|
+
getBaseUrl,
|
|
16
|
+
handleError,
|
|
17
|
+
headersWithCliClientHeaders,
|
|
18
|
+
initClient
|
|
19
|
+
} from "./chunk-GHKWW4NC.js";
|
|
20
|
+
import {
|
|
21
|
+
init_esm_shims
|
|
22
|
+
} from "./chunk-AUWSMG4F.js";
|
|
23
|
+
|
|
24
|
+
// src/lib/api/domains/zero-computer-use.ts
|
|
25
|
+
init_esm_shims();
|
|
26
|
+
function normalizeConfiguredUrl(value) {
|
|
27
|
+
return value.startsWith("http") ? value : `https://${value}`;
|
|
28
|
+
}
|
|
29
|
+
function resolveComputerUseApiBaseUrl(baseUrl) {
|
|
30
|
+
const override = process.env.VM0_API_BACKEND_URL;
|
|
31
|
+
if (override) {
|
|
32
|
+
return normalizeConfiguredUrl(override).replace(/\/$/, "");
|
|
33
|
+
}
|
|
34
|
+
const url = new URL(baseUrl);
|
|
35
|
+
if (url.hostname === "www.vm0.ai" || url.hostname === "app.vm0.ai") {
|
|
36
|
+
url.hostname = "api.vm0.ai";
|
|
37
|
+
}
|
|
38
|
+
return url.toString().replace(/\/$/, "");
|
|
39
|
+
}
|
|
40
|
+
function buildHeaders(token) {
|
|
41
|
+
const headers = {};
|
|
42
|
+
if (token) {
|
|
43
|
+
headers.Authorization = `Bearer ${token}`;
|
|
44
|
+
}
|
|
45
|
+
return headers;
|
|
46
|
+
}
|
|
47
|
+
async function getComputerUseClientConfig() {
|
|
48
|
+
const baseUrl = resolveComputerUseApiBaseUrl(await getBaseUrl());
|
|
49
|
+
const token = await getActiveToken();
|
|
50
|
+
if (!token) {
|
|
51
|
+
throw new ApiRequestError("Not authenticated", "UNAUTHORIZED", 401);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
baseUrl,
|
|
55
|
+
baseHeaders: buildHeaders(token),
|
|
56
|
+
jsonQuery: false,
|
|
57
|
+
api: cliClientHeaderApi
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function commandBody(params) {
|
|
61
|
+
return {
|
|
62
|
+
kind: params.kind,
|
|
63
|
+
timeoutMs: params.timeoutMs ?? 15e3,
|
|
64
|
+
...params.app ? { app: params.app } : {},
|
|
65
|
+
...params.snapshotId ? { snapshotId: params.snapshotId } : {},
|
|
66
|
+
...params.elementId ? { elementId: params.elementId } : {},
|
|
67
|
+
...params.elementIndex !== void 0 ? { elementIndex: params.elementIndex } : {},
|
|
68
|
+
...params.x !== void 0 ? { x: params.x } : {},
|
|
69
|
+
...params.y !== void 0 ? { y: params.y } : {},
|
|
70
|
+
...params.button ? { button: params.button } : {},
|
|
71
|
+
...params.clickCount !== void 0 ? { clickCount: params.clickCount } : {},
|
|
72
|
+
...params.direction ? { direction: params.direction } : {},
|
|
73
|
+
...params.pages !== void 0 ? { pages: params.pages } : {},
|
|
74
|
+
...params.value !== void 0 ? { value: params.value } : {},
|
|
75
|
+
...params.text !== void 0 ? { text: params.text } : {},
|
|
76
|
+
...params.key ? { key: params.key } : {},
|
|
77
|
+
...params.action ? { action: params.action } : {}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
async function createComputerUseReadCommand(params) {
|
|
81
|
+
const config = await getComputerUseClientConfig();
|
|
82
|
+
const client = initClient(zeroComputerUseCommandContract, config);
|
|
83
|
+
const result = await client.create({ body: commandBody(params) });
|
|
84
|
+
if (result.status === 200) {
|
|
85
|
+
return result.body;
|
|
86
|
+
}
|
|
87
|
+
handleError(result, "Failed to create computer-use command");
|
|
88
|
+
}
|
|
89
|
+
async function createComputerUseWriteCommand(params) {
|
|
90
|
+
const config = await getComputerUseClientConfig();
|
|
91
|
+
const client = initClient(zeroComputerUseWriteCommandContract, config);
|
|
92
|
+
const result = await client.create({ body: commandBody(params) });
|
|
93
|
+
if (result.status === 200) {
|
|
94
|
+
return result.body;
|
|
95
|
+
}
|
|
96
|
+
handleError(result, "Failed to create computer-use write command");
|
|
97
|
+
}
|
|
98
|
+
async function createComputerUsePluginCommand(params) {
|
|
99
|
+
const config = await getComputerUseClientConfig();
|
|
100
|
+
const client = initClient(zeroComputerUsePluginCommandContract, config);
|
|
101
|
+
const result = await client.create({ body: params });
|
|
102
|
+
if (result.status === 200) {
|
|
103
|
+
return result.body;
|
|
104
|
+
}
|
|
105
|
+
handleError(result, "Failed to create computer-use plugin command");
|
|
106
|
+
}
|
|
107
|
+
async function listComputerUseHosts() {
|
|
108
|
+
const config = await getComputerUseClientConfig();
|
|
109
|
+
const client = initClient(zeroComputerUseHostsContract, config);
|
|
110
|
+
const result = await client.list({});
|
|
111
|
+
if (result.status === 200) {
|
|
112
|
+
return result.body.hosts;
|
|
113
|
+
}
|
|
114
|
+
handleError(result, "Failed to list computer-use hosts");
|
|
115
|
+
}
|
|
116
|
+
async function getComputerUseCommand(commandId) {
|
|
117
|
+
const config = await getComputerUseClientConfig();
|
|
118
|
+
const client = initClient(zeroComputerUseCommandContract, config);
|
|
119
|
+
const result = await client.get({ params: { commandId } });
|
|
120
|
+
if (result.status === 200) {
|
|
121
|
+
return result.body;
|
|
122
|
+
}
|
|
123
|
+
handleError(result, "Failed to get computer-use command");
|
|
124
|
+
}
|
|
125
|
+
async function createComputerUseAuthorizationRequest() {
|
|
126
|
+
const config = await getComputerUseClientConfig();
|
|
127
|
+
const client = initClient(
|
|
128
|
+
zeroComputerUseAuthorizationRequestsContract,
|
|
129
|
+
config
|
|
130
|
+
);
|
|
131
|
+
const result = await client.create({ body: {} });
|
|
132
|
+
if (result.status === 200) {
|
|
133
|
+
return result.body;
|
|
134
|
+
}
|
|
135
|
+
handleError(result, "Failed to create computer-use authorization request");
|
|
136
|
+
}
|
|
137
|
+
async function fetchComputerUseScreenshot(commandId) {
|
|
138
|
+
const config = await getComputerUseClientConfig();
|
|
139
|
+
const response = await fetch(
|
|
140
|
+
`${config.baseUrl}/api/zero/computer-use/commands/${encodeURIComponent(
|
|
141
|
+
commandId
|
|
142
|
+
)}/screenshot`,
|
|
143
|
+
{ headers: headersWithCliClientHeaders(config.baseHeaders) }
|
|
144
|
+
);
|
|
145
|
+
if (!response.ok) {
|
|
146
|
+
throw new ApiRequestError(
|
|
147
|
+
"Failed to download computer-use screenshot",
|
|
148
|
+
"REQUEST_FAILED",
|
|
149
|
+
response.status
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
153
|
+
const mimeType = response.headers.get("content-type") ?? "application/octet-stream";
|
|
154
|
+
return { buffer: Buffer.from(arrayBuffer), mimeType };
|
|
155
|
+
}
|
|
156
|
+
async function fetchComputerUsePluginContent(commandId) {
|
|
157
|
+
const config = await getComputerUseClientConfig();
|
|
158
|
+
const response = await fetch(
|
|
159
|
+
`${config.baseUrl}/api/zero/computer-use/commands/${encodeURIComponent(
|
|
160
|
+
commandId
|
|
161
|
+
)}/plugin-content`,
|
|
162
|
+
{ headers: headersWithCliClientHeaders(config.baseHeaders) }
|
|
163
|
+
);
|
|
164
|
+
if (!response.ok) {
|
|
165
|
+
throw new ApiRequestError(
|
|
166
|
+
"Failed to download computer-use plugin content",
|
|
167
|
+
"REQUEST_FAILED",
|
|
168
|
+
response.status
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
172
|
+
const mimeType = response.headers.get("content-type") ?? "application/octet-stream";
|
|
173
|
+
const disposition = response.headers.get("content-disposition") ?? "";
|
|
174
|
+
const fileName = /filename="([^"]+)"/.exec(disposition)?.[1] ?? "plugin-content.bin";
|
|
175
|
+
return { buffer: Buffer.from(arrayBuffer), mimeType, fileName };
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export {
|
|
179
|
+
createComputerUseReadCommand,
|
|
180
|
+
createComputerUseWriteCommand,
|
|
181
|
+
createComputerUsePluginCommand,
|
|
182
|
+
listComputerUseHosts,
|
|
183
|
+
getComputerUseCommand,
|
|
184
|
+
createComputerUseAuthorizationRequest,
|
|
185
|
+
fetchComputerUseScreenshot,
|
|
186
|
+
fetchComputerUsePluginContent
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=chunk-CD2BLKGC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/api/domains/zero-computer-use.ts"],"sourcesContent":["import { initClient } from \"@vm0/api-contracts/contracts/trpc-contract\";\nimport type {\n ComputerUseAuthorizationRequestCreateResponse,\n ComputerUseCommandCreateResponse,\n ComputerUseCommandResponse,\n ComputerUseHost,\n ComputerUseReadCommandKind,\n ComputerUseWriteCommandKind,\n} from \"@vm0/api-contracts/contracts/zero-computer-use\";\nimport type { ComputerUseAnyPluginCallBody } from \"@vm0/api-contracts/contracts/zero-computer-use-plugins\";\nimport {\n zeroComputerUseAuthorizationRequestsContract,\n zeroComputerUseCommandContract,\n zeroComputerUseHostsContract,\n zeroComputerUsePluginCommandContract,\n zeroComputerUseWriteCommandContract,\n} from \"@vm0/api-contracts/contracts/zero-computer-use\";\nimport {\n ApiRequestError,\n getBaseUrl,\n handleError,\n} from \"../core/client-factory\";\nimport { getActiveToken } from \"../config\";\nimport {\n cliClientHeaderApi,\n headersWithCliClientHeaders,\n} from \"../client-headers\";\n\nfunction normalizeConfiguredUrl(value: string): string {\n return value.startsWith(\"http\") ? value : `https://${value}`;\n}\n\nfunction resolveComputerUseApiBaseUrl(baseUrl: string): string {\n const override = process.env.VM0_API_BACKEND_URL;\n if (override) {\n return normalizeConfiguredUrl(override).replace(/\\/$/, \"\");\n }\n\n const url = new URL(baseUrl);\n if (url.hostname === \"www.vm0.ai\" || url.hostname === \"app.vm0.ai\") {\n url.hostname = \"api.vm0.ai\";\n }\n return url.toString().replace(/\\/$/, \"\");\n}\n\nfunction buildHeaders(token?: string): Record<string, string> {\n const headers: Record<string, string> = {};\n if (token) {\n headers.Authorization = `Bearer ${token}`;\n }\n return headers;\n}\n\nasync function getComputerUseClientConfig() {\n const baseUrl = resolveComputerUseApiBaseUrl(await getBaseUrl());\n const token = await getActiveToken();\n if (!token) {\n throw new ApiRequestError(\"Not authenticated\", \"UNAUTHORIZED\", 401);\n }\n return {\n baseUrl,\n baseHeaders: buildHeaders(token),\n jsonQuery: false as const,\n api: cliClientHeaderApi,\n };\n}\n\ninterface ComputerUseCommandParams<\n Kind extends ComputerUseReadCommandKind | ComputerUseWriteCommandKind,\n> {\n readonly kind: Kind;\n readonly app?: string;\n readonly snapshotId?: string;\n readonly elementId?: string;\n readonly elementIndex?: number;\n readonly x?: number;\n readonly y?: number;\n readonly button?: \"left\" | \"right\" | \"middle\";\n readonly clickCount?: number;\n readonly direction?: \"up\" | \"down\" | \"left\" | \"right\";\n readonly pages?: number;\n readonly value?: string;\n readonly text?: string;\n readonly key?: string;\n readonly action?: string;\n readonly timeoutMs?: number;\n}\n\nfunction commandBody<\n Kind extends ComputerUseReadCommandKind | ComputerUseWriteCommandKind,\n>(params: ComputerUseCommandParams<Kind>) {\n return {\n kind: params.kind,\n timeoutMs: params.timeoutMs ?? 15_000,\n ...(params.app ? { app: params.app } : {}),\n ...(params.snapshotId ? { snapshotId: params.snapshotId } : {}),\n ...(params.elementId ? { elementId: params.elementId } : {}),\n ...(params.elementIndex !== undefined\n ? { elementIndex: params.elementIndex }\n : {}),\n ...(params.x !== undefined ? { x: params.x } : {}),\n ...(params.y !== undefined ? { y: params.y } : {}),\n ...(params.button ? { button: params.button } : {}),\n ...(params.clickCount !== undefined\n ? { clickCount: params.clickCount }\n : {}),\n ...(params.direction ? { direction: params.direction } : {}),\n ...(params.pages !== undefined ? { pages: params.pages } : {}),\n ...(params.value !== undefined ? { value: params.value } : {}),\n ...(params.text !== undefined ? { text: params.text } : {}),\n ...(params.key ? { key: params.key } : {}),\n ...(params.action ? { action: params.action } : {}),\n };\n}\n\nexport async function createComputerUseReadCommand(\n params: ComputerUseCommandParams<ComputerUseReadCommandKind>,\n): Promise<ComputerUseCommandCreateResponse> {\n const config = await getComputerUseClientConfig();\n const client = initClient(zeroComputerUseCommandContract, config);\n const result = await client.create({ body: commandBody(params) });\n\n if (result.status === 200) {\n return result.body;\n }\n\n handleError(result, \"Failed to create computer-use command\");\n}\n\nexport async function createComputerUseWriteCommand(\n params: ComputerUseCommandParams<ComputerUseWriteCommandKind>,\n): Promise<ComputerUseCommandCreateResponse> {\n const config = await getComputerUseClientConfig();\n const client = initClient(zeroComputerUseWriteCommandContract, config);\n const result = await client.create({ body: commandBody(params) });\n\n if (result.status === 200) {\n return result.body;\n }\n\n handleError(result, \"Failed to create computer-use write command\");\n}\n\nexport async function createComputerUsePluginCommand(\n params: ComputerUseAnyPluginCallBody,\n): Promise<ComputerUseCommandCreateResponse> {\n const config = await getComputerUseClientConfig();\n const client = initClient(zeroComputerUsePluginCommandContract, config);\n const result = await client.create({ body: params });\n\n if (result.status === 200) {\n return result.body;\n }\n\n handleError(result, \"Failed to create computer-use plugin command\");\n}\n\nexport async function listComputerUseHosts(): Promise<\n readonly ComputerUseHost[]\n> {\n const config = await getComputerUseClientConfig();\n const client = initClient(zeroComputerUseHostsContract, config);\n const result = await client.list({});\n\n if (result.status === 200) {\n return result.body.hosts;\n }\n\n handleError(result, \"Failed to list computer-use hosts\");\n}\n\nexport async function getComputerUseCommand(\n commandId: string,\n): Promise<ComputerUseCommandResponse> {\n const config = await getComputerUseClientConfig();\n const client = initClient(zeroComputerUseCommandContract, config);\n const result = await client.get({ params: { commandId } });\n\n if (result.status === 200) {\n return result.body;\n }\n\n handleError(result, \"Failed to get computer-use command\");\n}\n\nexport async function createComputerUseAuthorizationRequest(): Promise<ComputerUseAuthorizationRequestCreateResponse> {\n const config = await getComputerUseClientConfig();\n const client = initClient(\n zeroComputerUseAuthorizationRequestsContract,\n config,\n );\n const result = await client.create({ body: {} });\n\n if (result.status === 200) {\n return result.body;\n }\n\n handleError(result, \"Failed to create computer-use authorization request\");\n}\n\n/**\n * Download a command screenshot through the authenticated API proxy. The bytes\n * never traverse a public URL; the API authorizes by command ownership and\n * streams the object back. Used when the command result carries an\n * object-storage pointer instead of an inline data URL.\n */\nexport async function fetchComputerUseScreenshot(\n commandId: string,\n): Promise<{ readonly buffer: Buffer; readonly mimeType: string }> {\n const config = await getComputerUseClientConfig();\n const response = await fetch(\n `${config.baseUrl}/api/zero/computer-use/commands/${encodeURIComponent(\n commandId,\n )}/screenshot`,\n { headers: headersWithCliClientHeaders(config.baseHeaders) },\n );\n\n if (!response.ok) {\n throw new ApiRequestError(\n \"Failed to download computer-use screenshot\",\n \"REQUEST_FAILED\",\n response.status,\n );\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const mimeType =\n response.headers.get(\"content-type\") ?? \"application/octet-stream\";\n return { buffer: Buffer.from(arrayBuffer), mimeType };\n}\n\nexport async function fetchComputerUsePluginContent(\n commandId: string,\n): Promise<{\n readonly buffer: Buffer;\n readonly mimeType: string;\n readonly fileName: string;\n}> {\n const config = await getComputerUseClientConfig();\n const response = await fetch(\n `${config.baseUrl}/api/zero/computer-use/commands/${encodeURIComponent(\n commandId,\n )}/plugin-content`,\n { headers: headersWithCliClientHeaders(config.baseHeaders) },\n );\n\n if (!response.ok) {\n throw new ApiRequestError(\n \"Failed to download computer-use plugin content\",\n \"REQUEST_FAILED\",\n response.status,\n );\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const mimeType =\n response.headers.get(\"content-type\") ?? \"application/octet-stream\";\n const disposition = response.headers.get(\"content-disposition\") ?? \"\";\n const fileName =\n /filename=\"([^\"]+)\"/.exec(disposition)?.[1] ?? \"plugin-content.bin\";\n return { buffer: Buffer.from(arrayBuffer), mimeType, fileName };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
initContract,
|
|
10
|
+
orgModelPoliciesResponseSchema,
|
|
11
|
+
updateOrgModelPoliciesRequestSchema
|
|
12
|
+
} from "./chunk-GHKWW4NC.js";
|
|
13
|
+
import {
|
|
14
|
+
init_esm_shims
|
|
15
|
+
} from "./chunk-AUWSMG4F.js";
|
|
16
|
+
|
|
17
|
+
// ../../packages/api-contracts/src/contracts/zero-model-policies.ts
|
|
18
|
+
init_esm_shims();
|
|
19
|
+
var c = initContract();
|
|
20
|
+
var zeroModelPoliciesMainContract = c.router({
|
|
21
|
+
list: {
|
|
22
|
+
method: "GET",
|
|
23
|
+
path: "/api/zero/model-policies",
|
|
24
|
+
headers: authHeadersSchema,
|
|
25
|
+
responses: {
|
|
26
|
+
200: orgModelPoliciesResponseSchema,
|
|
27
|
+
401: apiErrorSchema,
|
|
28
|
+
403: apiErrorSchema,
|
|
29
|
+
404: apiErrorSchema,
|
|
30
|
+
500: apiErrorSchema
|
|
31
|
+
},
|
|
32
|
+
summary: "List org model-first policies"
|
|
33
|
+
},
|
|
34
|
+
update: {
|
|
35
|
+
method: "PUT",
|
|
36
|
+
path: "/api/zero/model-policies",
|
|
37
|
+
headers: authHeadersSchema,
|
|
38
|
+
body: updateOrgModelPoliciesRequestSchema,
|
|
39
|
+
responses: {
|
|
40
|
+
200: orgModelPoliciesResponseSchema,
|
|
41
|
+
400: apiErrorSchema,
|
|
42
|
+
401: apiErrorSchema,
|
|
43
|
+
402: apiErrorSchema,
|
|
44
|
+
403: apiErrorSchema,
|
|
45
|
+
404: apiErrorSchema,
|
|
46
|
+
500: apiErrorSchema
|
|
47
|
+
},
|
|
48
|
+
summary: "Update org model-first policies"
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
zeroModelPoliciesMainContract
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chunk-CEJGHPF3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/api-contracts/src/contracts/zero-model-policies.ts"],"sourcesContent":["import { authHeadersSchema, initContract } from \"./base\";\nimport { apiErrorSchema } from \"./errors\";\nimport {\n orgModelPoliciesResponseSchema,\n updateOrgModelPoliciesRequestSchema,\n} from \"./model-providers\";\n\nconst c = initContract();\n\nexport const zeroModelPoliciesMainContract = c.router({\n list: {\n method: \"GET\",\n path: \"/api/zero/model-policies\",\n headers: authHeadersSchema,\n responses: {\n 200: orgModelPoliciesResponseSchema,\n 401: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 500: apiErrorSchema,\n },\n summary: \"List org model-first policies\",\n },\n update: {\n method: \"PUT\",\n path: \"/api/zero/model-policies\",\n headers: authHeadersSchema,\n body: updateOrgModelPoliciesRequestSchema,\n responses: {\n 200: orgModelPoliciesResponseSchema,\n 400: apiErrorSchema,\n 401: apiErrorSchema,\n 402: apiErrorSchema,\n 403: apiErrorSchema,\n 404: apiErrorSchema,\n 500: apiErrorSchema,\n },\n summary: \"Update org model-first policies\",\n },\n});\n\nexport type ZeroModelPoliciesMainContract =\n typeof zeroModelPoliciesMainContract;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAOA,IAAM,IAAI,aAAa;AAEhB,IAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,EACX;AACF,CAAC;","names":[]}
|