@renai-labs/sdk 0.1.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.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +90 -0
  3. package/dist/auth.d.ts +8 -0
  4. package/dist/auth.js +10 -0
  5. package/dist/client.d.ts +8 -0
  6. package/dist/client.js +14 -0
  7. package/dist/generated/@tanstack/react-query.gen.d.ts +3308 -0
  8. package/dist/generated/@tanstack/react-query.gen.js +3431 -0
  9. package/dist/generated/client/client.gen.d.ts +2 -0
  10. package/dist/generated/client/client.gen.js +235 -0
  11. package/dist/generated/client/index.d.ts +8 -0
  12. package/dist/generated/client/index.js +6 -0
  13. package/dist/generated/client/types.gen.d.ts +117 -0
  14. package/dist/generated/client/types.gen.js +2 -0
  15. package/dist/generated/client/utils.gen.d.ts +33 -0
  16. package/dist/generated/client/utils.gen.js +228 -0
  17. package/dist/generated/client.gen.d.ts +12 -0
  18. package/dist/generated/client.gen.js +3 -0
  19. package/dist/generated/core/auth.gen.d.ts +18 -0
  20. package/dist/generated/core/auth.gen.js +14 -0
  21. package/dist/generated/core/bodySerializer.gen.d.ts +25 -0
  22. package/dist/generated/core/bodySerializer.gen.js +57 -0
  23. package/dist/generated/core/params.gen.d.ts +43 -0
  24. package/dist/generated/core/params.gen.js +100 -0
  25. package/dist/generated/core/pathSerializer.gen.d.ts +33 -0
  26. package/dist/generated/core/pathSerializer.gen.js +106 -0
  27. package/dist/generated/core/queryKeySerializer.gen.d.ts +18 -0
  28. package/dist/generated/core/queryKeySerializer.gen.js +92 -0
  29. package/dist/generated/core/serverSentEvents.gen.d.ts +71 -0
  30. package/dist/generated/core/serverSentEvents.gen.js +132 -0
  31. package/dist/generated/core/types.gen.d.ts +78 -0
  32. package/dist/generated/core/types.gen.js +2 -0
  33. package/dist/generated/core/utils.gen.d.ts +19 -0
  34. package/dist/generated/core/utils.gen.js +87 -0
  35. package/dist/generated/sdk.gen.d.ts +885 -0
  36. package/dist/generated/sdk.gen.js +1614 -0
  37. package/dist/generated/types.gen.d.ts +6898 -0
  38. package/dist/generated/types.gen.js +2 -0
  39. package/dist/generated/zod.gen.d.ts +4873 -0
  40. package/dist/generated/zod.gen.js +2212 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.js +3 -0
  43. package/dist/session.d.ts +92 -0
  44. package/dist/session.js +1 -0
  45. package/package.json +86 -0
@@ -0,0 +1,2212 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import * as z from 'zod';
3
+ export const zGitRepo = z.object({
4
+ url: z.string(),
5
+ mountPath: z.string()
6
+ });
7
+ export const zPermissionRule = z.object({
8
+ permission: z.string(),
9
+ pattern: z.string(),
10
+ action: z.enum([
11
+ 'allow',
12
+ 'deny',
13
+ 'ask'
14
+ ])
15
+ });
16
+ export const zOAuthStartInput = z.object({
17
+ mcpId: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
18
+ scope: z.string().optional(),
19
+ callbackUrl: z.url().optional()
20
+ });
21
+ export const zOAuthStartResult = z.object({
22
+ authorizationUrl: z.string(),
23
+ sessionId: z.string(),
24
+ state: z.string()
25
+ });
26
+ export const zCredentialAuth = z.union([
27
+ z.object({
28
+ type: z.literal('bearer'),
29
+ token: z.string()
30
+ }),
31
+ z.object({
32
+ type: z.literal('oauth'),
33
+ accessToken: z.string(),
34
+ expiresAt: z.string().nullish(),
35
+ refresh: z.object({
36
+ clientId: z.string(),
37
+ refreshToken: z.string(),
38
+ clientSecret: z.string().optional(),
39
+ tokenEndpoint: z.string().optional(),
40
+ tokenEndpointAuth: z.enum([
41
+ 'none',
42
+ 'client_secret_basic',
43
+ 'client_secret_post'
44
+ ]).optional(),
45
+ scope: z.string().optional(),
46
+ resource: z.string().optional()
47
+ }).nullish()
48
+ }),
49
+ z.object({
50
+ type: z.literal('env'),
51
+ value: z.string()
52
+ })
53
+ ]);
54
+ export const zCredentialAuthPublic = z.union([
55
+ z.object({
56
+ type: z.literal('bearer')
57
+ }),
58
+ z.object({
59
+ type: z.literal('oauth'),
60
+ expiresAt: z.string().nullish(),
61
+ refresh: z.object({
62
+ clientId: z.string(),
63
+ tokenEndpoint: z.string().optional(),
64
+ tokenEndpointAuth: z.enum([
65
+ 'none',
66
+ 'client_secret_basic',
67
+ 'client_secret_post'
68
+ ]).optional(),
69
+ scope: z.string().optional(),
70
+ resource: z.string().optional()
71
+ }).nullish()
72
+ }),
73
+ z.object({
74
+ type: z.literal('env')
75
+ })
76
+ ]);
77
+ export const zCredential = z.object({
78
+ id: z.string(),
79
+ vaultId: z.string(),
80
+ name: z.string(),
81
+ mcpId: z.string().nullable(),
82
+ label: z.string().nullable(),
83
+ keyPreview: z.string().nullable(),
84
+ auth: zCredentialAuthPublic,
85
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
86
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
87
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
88
+ });
89
+ export const zVault = z.object({
90
+ id: z.string(),
91
+ name: z.string(),
92
+ description: z.string().nullable(),
93
+ orgId: z.string(),
94
+ userId: z.string().nullable(),
95
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
96
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
97
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
98
+ });
99
+ export const zSkillVersion = z.object({
100
+ id: z.string(),
101
+ skillId: z.string(),
102
+ version: z.string().regex(/^\d+\.\d+\.\d+$/),
103
+ createdById: z.string(),
104
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
105
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
106
+ source: z.union([
107
+ z.object({
108
+ type: z.literal('s3'),
109
+ url: z.url()
110
+ }),
111
+ z.object({
112
+ type: z.literal('git'),
113
+ url: z.url(),
114
+ ref: z.string().optional(),
115
+ path: z.string().optional()
116
+ })
117
+ ]),
118
+ releaseNotes: z.string().nullable()
119
+ });
120
+ export const zSkill = z.object({
121
+ id: z.string(),
122
+ slug: z.string(),
123
+ name: z.string(),
124
+ description: z.string().nullable(),
125
+ icon: z.string().nullable(),
126
+ orgId: z.string(),
127
+ userId: z.string().nullable(),
128
+ publisherId: z.string().nullable(),
129
+ latestVersionId: z.string().nullable(),
130
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
131
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
132
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
133
+ });
134
+ export const zReplay = z.object({
135
+ id: z.string(),
136
+ orgId: z.string(),
137
+ userId: z.string().nullable(),
138
+ sessionId: z.string(),
139
+ publisherId: z.string(),
140
+ slug: z.string(),
141
+ websiteMetadata: z.record(z.string(), z.unknown()).nullable(),
142
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
143
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
144
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
145
+ });
146
+ export const zApiTrigger = z.object({
147
+ id: z.string(),
148
+ routineId: z.string(),
149
+ tokenHash: z.string().nullable(),
150
+ isEnabled: z.boolean(),
151
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
152
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
153
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
154
+ });
155
+ export const zApiTriggerCreated = z.object({
156
+ trigger: zApiTrigger,
157
+ token: z.string()
158
+ });
159
+ export const zWebhookTrigger = z.object({
160
+ id: z.string(),
161
+ routineId: z.string(),
162
+ source: z.string().nullable(),
163
+ secret: z.string().nullable(),
164
+ eventFilters: z.record(z.string(), z.string()).nullable(),
165
+ isEnabled: z.boolean(),
166
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
167
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
168
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
169
+ });
170
+ export const zCronTrigger = z.object({
171
+ id: z.string(),
172
+ routineId: z.string(),
173
+ schedule: z.string(),
174
+ timezone: z.string().nullable(),
175
+ isEnabled: z.boolean(),
176
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
177
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
178
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
179
+ });
180
+ export const zOpencodeMessage = z.object({
181
+ id: z.string(),
182
+ sessionId: z.string(),
183
+ data: z.record(z.string(), z.unknown()),
184
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
185
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
186
+ });
187
+ export const zOpencodeSession = z.object({
188
+ id: z.string(),
189
+ createdById: z.string(),
190
+ projectId: z.string(),
191
+ podId: z.string(),
192
+ slug: z.string(),
193
+ directory: z.string(),
194
+ title: z.string(),
195
+ version: z.string(),
196
+ shareUrl: z.string().nullable(),
197
+ parentId: z.string().nullable(),
198
+ summaryAdditions: z.int().gte(-2147483648).lte(2147483647).nullable(),
199
+ summaryDeletions: z.int().gte(-2147483648).lte(2147483647).nullable(),
200
+ summaryFiles: z.int().gte(-2147483648).lte(2147483647).nullable(),
201
+ summaryDiffs: z.array(z.object({
202
+ path: z.string(),
203
+ additions: z.number(),
204
+ deletions: z.number()
205
+ })).nullable(),
206
+ revert: z.object({
207
+ messageId: z.string(),
208
+ partId: z.string().optional(),
209
+ snapshot: z.string().optional(),
210
+ diff: z.string().optional()
211
+ }).nullable(),
212
+ permission: z.record(z.string(), z.unknown()).nullable(),
213
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
214
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
215
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
216
+ compactingAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
217
+ });
218
+ export const zRoutineRun = z.object({
219
+ id: z.string(),
220
+ routineId: z.string(),
221
+ sessionId: z.string().nullable(),
222
+ status: z.enum([
223
+ 'pending',
224
+ 'running',
225
+ 'completed',
226
+ 'failed',
227
+ 'cancelled'
228
+ ]),
229
+ error: z.string().nullable(),
230
+ startedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
231
+ completedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
232
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
233
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
234
+ });
235
+ export const zRoutine = z.object({
236
+ id: z.string(),
237
+ orgId: z.string(),
238
+ userId: z.string().nullable(),
239
+ podId: z.string(),
240
+ projectId: z.string(),
241
+ projectAgentId: z.string(),
242
+ name: z.string(),
243
+ description: z.string().nullable(),
244
+ prompt: z.string(),
245
+ status: z.enum(['active', 'paused']),
246
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
247
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
248
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
249
+ });
250
+ export const zProjectMemoryStore = z.object({
251
+ id: z.string(),
252
+ projectId: z.string(),
253
+ memoryStoreId: z.string(),
254
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
255
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
256
+ });
257
+ export const zFileStoreResource = z.object({
258
+ source: z.string(),
259
+ mountPath: z.string()
260
+ });
261
+ export const zProjectFileStore = z.object({
262
+ id: z.string(),
263
+ projectId: z.string(),
264
+ fileStoreId: z.string(),
265
+ resources: z.array(zFileStoreResource),
266
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
267
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
268
+ });
269
+ export const zProjectAgent = z.object({
270
+ id: z.string(),
271
+ projectId: z.string(),
272
+ agentId: z.string(),
273
+ agentVersionId: z.string().nullable(),
274
+ type: z.enum(['primary', 'subagent']),
275
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
276
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
277
+ });
278
+ export const zProject = z.object({
279
+ id: z.string(),
280
+ orgId: z.string(),
281
+ userId: z.string().nullable(),
282
+ podId: z.string(),
283
+ name: z.string(),
284
+ description: z.string().nullable(),
285
+ slug: z.string(),
286
+ path: z.string().nullable(),
287
+ permission: z.array(zPermissionRule),
288
+ gitRepos: z.array(zGitRepo),
289
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
290
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
291
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
292
+ });
293
+ export const zSandbox = z.object({
294
+ id: z.string(),
295
+ orgId: z.string(),
296
+ userId: z.string().nullable(),
297
+ providerId: z.string(),
298
+ providerSandboxId: z.string().nullable(),
299
+ internalHost: z.string().nullable(),
300
+ publicHost: z.string().nullable(),
301
+ status: z.enum([
302
+ 'provisioning',
303
+ 'ready',
304
+ 'failed',
305
+ 'terminated'
306
+ ]),
307
+ lastActivityAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
308
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
309
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
310
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
311
+ });
312
+ export const zPodVault = z.object({
313
+ id: z.string(),
314
+ podId: z.string(),
315
+ vaultId: z.string(),
316
+ priority: z.int().gte(-2147483648).lte(2147483647),
317
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
318
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
319
+ });
320
+ export const zPodMember = z.object({
321
+ id: z.string(),
322
+ podId: z.string(),
323
+ userId: z.string(),
324
+ role: z.enum(['owner', 'member']),
325
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
326
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
327
+ });
328
+ export const zPod = z.object({
329
+ id: z.string(),
330
+ name: z.string(),
331
+ description: z.string().nullable(),
332
+ isPrivate: z.boolean(),
333
+ environmentId: z.string().nullable(),
334
+ orgId: z.string(),
335
+ userId: z.string().nullable(),
336
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
337
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
338
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
339
+ });
340
+ export const zPat = z.object({
341
+ id: z.string(),
342
+ userId: z.string(),
343
+ organizationId: z.string(),
344
+ name: z.string(),
345
+ tokenPrefix: z.string(),
346
+ scopes: z.array(z.string()),
347
+ lastUsedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
348
+ expiresAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
349
+ revokedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
350
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
351
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
352
+ });
353
+ export const zMemoryStoreFile = z.object({
354
+ path: z.string(),
355
+ size: z.int().gte(0).lte(9007199254740991),
356
+ lastModified: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
357
+ });
358
+ export const zMemoryStore = z.object({
359
+ id: z.string(),
360
+ name: z.string(),
361
+ description: z.string().nullable(),
362
+ orgId: z.string(),
363
+ userId: z.string().nullable(),
364
+ prompt: z.string().nullable(),
365
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
366
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
367
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
368
+ });
369
+ export const zOAuthSessionStatus = z.object({
370
+ id: z.string(),
371
+ status: z.enum([
372
+ 'pending',
373
+ 'active',
374
+ 'failed',
375
+ 'expired'
376
+ ]),
377
+ mcpId: z.string(),
378
+ credentialId: z.string().nullable(),
379
+ failureReason: z.string().nullable(),
380
+ expiresAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
381
+ });
382
+ export const zMcpOAuthConnectBody = z.object({
383
+ scope: z.string().optional(),
384
+ callbackUrl: z.url().optional()
385
+ });
386
+ export const zMcpOAuthConnectResult = z.union([
387
+ z.object({
388
+ alreadyConnected: z.literal(true),
389
+ credentialId: z.string()
390
+ }),
391
+ z.object({
392
+ alreadyConnected: z.literal(false),
393
+ authorizationUrl: z.string(),
394
+ sessionId: z.string()
395
+ })
396
+ ]);
397
+ export const zMcpAuthConfig = z.union([
398
+ z.object({
399
+ type: z.literal('oauth'),
400
+ scopes: z.array(z.string()).optional(),
401
+ tokenEndpoint: z.string().optional(),
402
+ authorizationEndpoint: z.string().optional(),
403
+ tokenEndpointAuth: z.enum([
404
+ 'none',
405
+ 'client_secret_basic',
406
+ 'client_secret_post'
407
+ ]).optional()
408
+ }),
409
+ z.object({
410
+ type: z.literal('api_key'),
411
+ headerName: z.string().optional(),
412
+ queryParam: z.string().optional()
413
+ }),
414
+ z.object({
415
+ type: z.literal('basic')
416
+ }),
417
+ z.object({
418
+ type: z.literal('none')
419
+ })
420
+ ]);
421
+ export const zMcp = z.object({
422
+ id: z.string(),
423
+ slug: z.string(),
424
+ name: z.string(),
425
+ description: z.string().nullable(),
426
+ icon: z.string().nullable(),
427
+ mcpServerUrl: z.string(),
428
+ type: z.enum(['url']),
429
+ auth: z.enum([
430
+ 'none',
431
+ 'oauth',
432
+ 'api_key',
433
+ 'basic'
434
+ ]),
435
+ authConfig: zMcpAuthConfig.nullable(),
436
+ orgId: z.string(),
437
+ userId: z.string().nullable(),
438
+ publisherId: z.string().nullable(),
439
+ websiteMetadata: z.record(z.string(), z.unknown()).nullable(),
440
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
441
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
442
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
443
+ });
444
+ export const zStorePresignResponse = z.object({
445
+ url: z.string(),
446
+ expiresAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
447
+ });
448
+ export const zFileStoreFile = z.object({
449
+ path: z.string(),
450
+ size: z.int().gte(0).lte(9007199254740991),
451
+ lastModified: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
452
+ });
453
+ export const zFileStore = z.object({
454
+ id: z.string(),
455
+ name: z.string(),
456
+ description: z.string().nullable(),
457
+ orgId: z.string(),
458
+ userId: z.string().nullable(),
459
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
460
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
461
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
462
+ });
463
+ export const zPackagesConfig = z.object({
464
+ apt: z.array(z.string()).optional(),
465
+ npm: z.array(z.string()).optional(),
466
+ pip: z.array(z.string()).optional(),
467
+ cargo: z.array(z.string()).optional(),
468
+ gem: z.array(z.string()).optional(),
469
+ go: z.array(z.string()).optional()
470
+ });
471
+ export const zNetworkingConfig = z.union([
472
+ z.object({
473
+ type: z.literal('unrestricted')
474
+ }),
475
+ z.object({
476
+ type: z.literal('limited'),
477
+ allowMcpServers: z.boolean(),
478
+ allowPackageManagers: z.boolean(),
479
+ allowedHosts: z.array(z.string())
480
+ })
481
+ ]);
482
+ export const zEnvironment = z.object({
483
+ id: z.string(),
484
+ name: z.string(),
485
+ description: z.string().nullable(),
486
+ orgId: z.string(),
487
+ userId: z.string().nullable(),
488
+ hostingType: z.enum(['cloud']),
489
+ networking: zNetworkingConfig,
490
+ packages: zPackagesConfig,
491
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
492
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
493
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
494
+ });
495
+ export const zDashboardByUserItem = z.object({
496
+ user_id: z.string(),
497
+ username: z.string(),
498
+ task_count: z.number()
499
+ });
500
+ export const zDashboardByAgentItem = z.object({
501
+ agent_id: z.string(),
502
+ agent_name: z.string(),
503
+ task_count: z.number(),
504
+ success_rate: z.number()
505
+ });
506
+ export const zDashboardTasksOverTimeItem = z.object({
507
+ date: z.string(),
508
+ completed: z.number(),
509
+ error: z.number(),
510
+ total: z.number()
511
+ });
512
+ export const zDashboardSummary = z.object({
513
+ total_tasks: z.number(),
514
+ completed_tasks: z.number(),
515
+ error_tasks: z.number(),
516
+ active_tasks: z.number(),
517
+ waiting_tasks: z.number(),
518
+ success_rate: z.number(),
519
+ autonomy_score: z.number()
520
+ });
521
+ export const zDashboardResponse = z.object({
522
+ summary: zDashboardSummary,
523
+ tasks_over_time: z.array(zDashboardTasksOverTimeItem),
524
+ by_agent: z.array(zDashboardByAgentItem),
525
+ by_user: z.array(zDashboardByUserItem),
526
+ agents: z.array(z.object({
527
+ id: z.string(),
528
+ name: z.string()
529
+ })),
530
+ pods: z.array(z.object({
531
+ id: z.string(),
532
+ name: z.string()
533
+ })),
534
+ users: z.array(z.object({
535
+ id: z.string(),
536
+ name: z.string()
537
+ })),
538
+ period: z.enum([
539
+ '7d',
540
+ '30d',
541
+ '90d'
542
+ ])
543
+ });
544
+ export const zAgentVersion = z.object({
545
+ id: z.string(),
546
+ agentId: z.string(),
547
+ version: z.string().regex(/^\d+\.\d+\.\d+$/),
548
+ createdById: z.string(),
549
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
550
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
551
+ description: z.string().nullable(),
552
+ prompt: z.string().nullable(),
553
+ releaseNotes: z.string().nullable()
554
+ });
555
+ export const zAgent = z.object({
556
+ id: z.string(),
557
+ slug: z.string(),
558
+ name: z.string(),
559
+ icon: z.string().nullable(),
560
+ orgId: z.string(),
561
+ userId: z.string().nullable(),
562
+ publisherId: z.string().nullable(),
563
+ websiteMetadata: z.record(z.string(), z.unknown()).nullable(),
564
+ latestVersionId: z.string().nullable(),
565
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
566
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
567
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
568
+ });
569
+ export const zComposioConnection = z.object({
570
+ id: z.string(),
571
+ orgId: z.string(),
572
+ userId: z.string().nullable(),
573
+ composioMcpId: z.string(),
574
+ composioUserId: z.string(),
575
+ connectedAccountId: z.string().nullable(),
576
+ oauthStatus: z.enum([
577
+ 'pending',
578
+ 'active',
579
+ 'failed',
580
+ 'expired'
581
+ ]),
582
+ oauthState: z.string().nullable(),
583
+ failureReason: z.string().nullable(),
584
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
585
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
586
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
587
+ });
588
+ export const zComposioMcp = z.object({
589
+ id: z.string(),
590
+ slug: z.string(),
591
+ name: z.string(),
592
+ description: z.string().nullable(),
593
+ logo: z.string().nullable(),
594
+ composioAuthConfigId: z.string(),
595
+ syncedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable(),
596
+ createdAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
597
+ updatedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
598
+ archivedAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullable()
599
+ });
600
+ export const zComposioMcpListQuery = z.object({
601
+ limit: z.number().gte(1).lte(100).optional(),
602
+ offset: z.number().gte(0).optional()
603
+ });
604
+ /**
605
+ * List of Composio MCPs
606
+ */
607
+ export const zComposioMcpListResponse = z.array(zComposioMcp);
608
+ export const zComposioMcpGetPath = z.object({
609
+ id: z.string().regex(/^cmcp_[0-9A-HJKMNP-TV-Z]{26}$/)
610
+ });
611
+ /**
612
+ * Composio MCP details
613
+ */
614
+ export const zComposioMcpGetResponse = zComposioMcp;
615
+ export const zComposioConnectionListQuery = z.object({
616
+ limit: z.number().gte(1).lte(100).optional(),
617
+ offset: z.number().gte(0).optional()
618
+ });
619
+ /**
620
+ * Connections
621
+ */
622
+ export const zComposioConnectionListResponse = z.array(zComposioConnection);
623
+ export const zComposioConnectionInitiateBody = z.object({
624
+ composioMcpId: z.string().regex(/^cmcp_[0-9A-HJKMNP-TV-Z]{26}$/),
625
+ callbackUrl: z.url().optional()
626
+ });
627
+ /**
628
+ * Redirect target or already-connected short-circuit
629
+ */
630
+ export const zComposioConnectionInitiateResponse = z.union([
631
+ z.object({
632
+ kind: z.literal('redirect'),
633
+ redirectUrl: z.string(),
634
+ connectionId: z.string(),
635
+ state: z.string()
636
+ }),
637
+ z.object({
638
+ kind: z.literal('already_connected'),
639
+ connectionId: z.string()
640
+ })
641
+ ]);
642
+ export const zComposioConnectionGetPath = z.object({
643
+ id: z.string().regex(/^cmc_[0-9A-HJKMNP-TV-Z]{26}$/)
644
+ });
645
+ /**
646
+ * Connection
647
+ */
648
+ export const zComposioConnectionGetResponse = zComposioConnection;
649
+ export const zComposioConnectionRefreshPath = z.object({
650
+ id: z.string().regex(/^cmc_[0-9A-HJKMNP-TV-Z]{26}$/)
651
+ });
652
+ /**
653
+ * Connection
654
+ */
655
+ export const zComposioConnectionRefreshResponse = zComposioConnection;
656
+ export const zComposioConnectionArchivePath = z.object({
657
+ id: z.string().regex(/^cmc_[0-9A-HJKMNP-TV-Z]{26}$/)
658
+ });
659
+ /**
660
+ * Archived connection
661
+ */
662
+ export const zComposioConnectionArchiveResponse = zComposioConnection;
663
+ export const zAgentListQuery = z.object({
664
+ limit: z.number().gte(1).lte(100).optional(),
665
+ offset: z.number().gte(0).optional()
666
+ });
667
+ /**
668
+ * List of agents
669
+ */
670
+ export const zAgentListResponse = z.array(zAgent);
671
+ export const zAgentCreateBody = z.object({
672
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/),
673
+ name: z.string().min(1).max(256),
674
+ icon: z.string().nullish().default(null)
675
+ });
676
+ /**
677
+ * Created agent
678
+ */
679
+ export const zAgentCreateResponse = zAgent;
680
+ export const zAgentGetBySlugPath = z.object({
681
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/)
682
+ });
683
+ /**
684
+ * Agent details
685
+ */
686
+ export const zAgentGetBySlugResponse = zAgent;
687
+ export const zAgentGetPath = z.object({
688
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
689
+ });
690
+ /**
691
+ * Agent details
692
+ */
693
+ export const zAgentGetResponse = zAgent;
694
+ export const zAgentUpdateBody = z.object({
695
+ name: z.string().optional(),
696
+ icon: z.string().nullish()
697
+ });
698
+ export const zAgentUpdatePath = z.object({
699
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
700
+ });
701
+ /**
702
+ * Updated agent
703
+ */
704
+ export const zAgentUpdateResponse = zAgent;
705
+ export const zAgentArchivePath = z.object({
706
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
707
+ });
708
+ /**
709
+ * Archived agent
710
+ */
711
+ export const zAgentArchiveResponse = zAgent;
712
+ export const zAgentVersionListPath = z.object({
713
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
714
+ });
715
+ export const zAgentVersionListQuery = z.object({
716
+ limit: z.number().gte(1).lte(100).optional(),
717
+ offset: z.number().gte(0).optional()
718
+ });
719
+ /**
720
+ * List of agent versions
721
+ */
722
+ export const zAgentVersionListResponse = z.array(zAgentVersion);
723
+ export const zAgentVersionCreateBody = z.object({
724
+ version: z.union([
725
+ z.string(),
726
+ z.enum([
727
+ 'major',
728
+ 'minor',
729
+ 'patch'
730
+ ])
731
+ ]).optional().default('patch'),
732
+ description: z.string().optional().default(''),
733
+ prompt: z.string().optional().default(''),
734
+ skills: z.array(z.object({
735
+ skillId: z.string(),
736
+ skillVersionId: z.string().nullish().default(null),
737
+ permission: z.array(zPermissionRule).optional().default([])
738
+ })).optional().default([]),
739
+ mcps: z.array(z.object({
740
+ mcpId: z.string(),
741
+ permission: z.array(zPermissionRule).optional().default([])
742
+ })).optional().default([]),
743
+ releaseNotes: z.string().max(4096).optional()
744
+ });
745
+ export const zAgentVersionCreatePath = z.object({
746
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
747
+ });
748
+ /**
749
+ * Created agent version
750
+ */
751
+ export const zAgentVersionCreateResponse = zAgentVersion;
752
+ export const zAgentVersionGetPath = z.object({
753
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
754
+ version: z.string().min(1).max(32)
755
+ });
756
+ /**
757
+ * Agent version details
758
+ */
759
+ export const zAgentVersionGetResponse = zAgentVersion;
760
+ export const zAgentVersionArchivePath = z.object({
761
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
762
+ version: z.string().min(1).max(32)
763
+ });
764
+ /**
765
+ * Archived agent version
766
+ */
767
+ export const zAgentVersionArchiveResponse = zAgentVersion;
768
+ export const zDashboardGetQuery = z.object({
769
+ period: z.enum([
770
+ '7d',
771
+ '30d',
772
+ '90d'
773
+ ]).optional().default('30d'),
774
+ podId: z.string().optional(),
775
+ agentId: z.string().optional(),
776
+ userId: z.string().optional()
777
+ });
778
+ /**
779
+ * Dashboard analytics
780
+ */
781
+ export const zDashboardGetResponse = zDashboardResponse;
782
+ export const zEnvironmentListQuery = z.object({
783
+ orgId: z.string().optional(),
784
+ limit: z.number().gte(1).lte(100).optional(),
785
+ offset: z.number().gte(0).optional(),
786
+ userId: z.string().nullish()
787
+ });
788
+ /**
789
+ * List of environments
790
+ */
791
+ export const zEnvironmentListResponse = z.array(zEnvironment);
792
+ export const zEnvironmentCreateBody = z.object({
793
+ name: z.string().min(1).max(256),
794
+ networking: zNetworkingConfig,
795
+ description: z.string().optional().default(''),
796
+ hostingType: z.enum(['cloud']).optional().default('cloud'),
797
+ packages: zPackagesConfig.optional()
798
+ });
799
+ /**
800
+ * Created environment
801
+ */
802
+ export const zEnvironmentCreateResponse = zEnvironment;
803
+ export const zEnvironmentDeletePath = z.object({
804
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/)
805
+ });
806
+ /**
807
+ * Deleted environment
808
+ */
809
+ export const zEnvironmentDeleteResponse = zEnvironment;
810
+ export const zEnvironmentGetPath = z.object({
811
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/)
812
+ });
813
+ /**
814
+ * Environment details
815
+ */
816
+ export const zEnvironmentGetResponse = zEnvironment;
817
+ export const zEnvironmentUpdateBody = z.object({
818
+ name: z.string().min(1).max(256).optional(),
819
+ description: z.string().optional(),
820
+ networking: zNetworkingConfig.optional(),
821
+ packages: zPackagesConfig.optional()
822
+ });
823
+ export const zEnvironmentUpdatePath = z.object({
824
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/)
825
+ });
826
+ /**
827
+ * Updated environment
828
+ */
829
+ export const zEnvironmentUpdateResponse = zEnvironment;
830
+ export const zEnvironmentArchivePath = z.object({
831
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/)
832
+ });
833
+ /**
834
+ * Archived environment
835
+ */
836
+ export const zEnvironmentArchiveResponse = zEnvironment;
837
+ export const zFileStoreListQuery = z.object({
838
+ orgId: z.string().optional(),
839
+ limit: z.number().gte(1).lte(100).optional(),
840
+ offset: z.number().gte(0).optional(),
841
+ userId: z.string().nullish()
842
+ });
843
+ /**
844
+ * List of file stores
845
+ */
846
+ export const zFileStoreListResponse = z.array(zFileStore);
847
+ export const zFileStoreCreateBody = z.object({
848
+ name: z.string().min(1).max(256),
849
+ description: z.string().optional().default('')
850
+ });
851
+ /**
852
+ * Created file store
853
+ */
854
+ export const zFileStoreCreateResponse = zFileStore;
855
+ export const zFileStoreGetPath = z.object({
856
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
857
+ });
858
+ /**
859
+ * File store details
860
+ */
861
+ export const zFileStoreGetResponse = zFileStore;
862
+ export const zFileStoreUpdateBody = z.object({
863
+ name: z.string().min(1).max(256).optional(),
864
+ description: z.string().optional()
865
+ });
866
+ export const zFileStoreUpdatePath = z.object({
867
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
868
+ });
869
+ /**
870
+ * Updated file store
871
+ */
872
+ export const zFileStoreUpdateResponse = zFileStore;
873
+ export const zFileStoreArchivePath = z.object({
874
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
875
+ });
876
+ /**
877
+ * Archived file store
878
+ */
879
+ export const zFileStoreArchiveResponse = zFileStore;
880
+ export const zFileStoreFilesDeletePath = z.object({
881
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
882
+ });
883
+ export const zFileStoreFilesDeleteQuery = z.object({
884
+ path: z.string().min(1)
885
+ });
886
+ /**
887
+ * Deleted
888
+ */
889
+ export const zFileStoreFilesDeleteResponse = z.object({
890
+ ok: z.literal(true)
891
+ });
892
+ export const zFileStoreFilesListPath = z.object({
893
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
894
+ });
895
+ export const zFileStoreFilesListQuery = z.object({
896
+ prefix: z.string().optional(),
897
+ limit: z.int().gt(0).lte(1000).optional()
898
+ });
899
+ /**
900
+ * Files under the given prefix
901
+ */
902
+ export const zFileStoreFilesListResponse = z.array(zFileStoreFile);
903
+ export const zFileStoreFilesUploadPath = z.object({
904
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
905
+ });
906
+ /**
907
+ * Uploaded file info
908
+ */
909
+ export const zFileStoreFilesUploadResponse = z.array(zFileStoreFile);
910
+ export const zFileStoreFilesPresignDownloadPath = z.object({
911
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
912
+ });
913
+ export const zFileStoreFilesPresignDownloadQuery = z.object({
914
+ path: z.string().min(1),
915
+ expiresInSeconds: z.int().gt(0).lte(9007199254740991).optional()
916
+ });
917
+ /**
918
+ * Presigned download URL
919
+ */
920
+ export const zFileStoreFilesPresignDownloadResponse = zStorePresignResponse;
921
+ export const zFileStoreFilesRenameBody = z.object({
922
+ from: z.string().min(1),
923
+ to: z.string().min(1),
924
+ overwrite: z.boolean().optional(),
925
+ contentType: z.string().optional()
926
+ });
927
+ export const zFileStoreFilesRenamePath = z.object({
928
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
929
+ });
930
+ /**
931
+ * Renamed file info
932
+ */
933
+ export const zFileStoreFilesRenameResponse = zFileStoreFile;
934
+ export const zFileStoreFilesPresignUploadBody = z.object({
935
+ path: z.string().min(1),
936
+ contentType: z.string().optional(),
937
+ expiresInSeconds: z.int().gt(0).lte(9007199254740991).optional()
938
+ });
939
+ export const zFileStoreFilesPresignUploadPath = z.object({
940
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
941
+ });
942
+ /**
943
+ * Presigned upload URL
944
+ */
945
+ export const zFileStoreFilesPresignUploadResponse = zStorePresignResponse;
946
+ export const zMcpListQuery = z.object({
947
+ limit: z.number().gte(1).lte(100).optional(),
948
+ offset: z.number().gte(0).optional()
949
+ });
950
+ /**
951
+ * List of MCPs
952
+ */
953
+ export const zMcpListResponse = z.array(zMcp);
954
+ export const zMcpCreateBody = z.object({
955
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/),
956
+ name: z.string().min(1).max(256),
957
+ mcpServerUrl: z.url(),
958
+ description: z.string().optional().default(''),
959
+ icon: z.string().nullish().default(null),
960
+ type: z.enum(['url']).optional().default('url'),
961
+ auth: z.enum([
962
+ 'none',
963
+ 'oauth',
964
+ 'api_key',
965
+ 'basic'
966
+ ]).optional().default('none'),
967
+ authConfig: zMcpAuthConfig.nullish().default(null)
968
+ });
969
+ /**
970
+ * Created MCP
971
+ */
972
+ export const zMcpCreateResponse = zMcp;
973
+ export const zMcpGetBySlugPath = z.object({
974
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/)
975
+ });
976
+ /**
977
+ * MCP details
978
+ */
979
+ export const zMcpGetBySlugResponse = zMcp;
980
+ export const zMcpGetPath = z.object({
981
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/)
982
+ });
983
+ /**
984
+ * MCP details
985
+ */
986
+ export const zMcpGetResponse = zMcp;
987
+ export const zMcpArchivePath = z.object({
988
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/)
989
+ });
990
+ /**
991
+ * Archived MCP
992
+ */
993
+ export const zMcpArchiveResponse = zMcp;
994
+ export const zMcpOauthConnectBody = zMcpOAuthConnectBody;
995
+ export const zMcpOauthConnectPath = z.object({
996
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/)
997
+ });
998
+ /**
999
+ * OAuth connect result
1000
+ */
1001
+ export const zMcpOauthConnectResponse = zMcpOAuthConnectResult;
1002
+ export const zMcpOauthSessionPath = z.object({
1003
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
1004
+ sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/)
1005
+ });
1006
+ /**
1007
+ * OAuth session status
1008
+ */
1009
+ export const zMcpOauthSessionResponse = zOAuthSessionStatus;
1010
+ export const zMemoryStoreListQuery = z.object({
1011
+ orgId: z.string().optional(),
1012
+ limit: z.number().gte(1).lte(100).optional(),
1013
+ offset: z.number().gte(0).optional(),
1014
+ userId: z.string().nullish()
1015
+ });
1016
+ /**
1017
+ * List of memory stores
1018
+ */
1019
+ export const zMemoryStoreListResponse = z.array(zMemoryStore);
1020
+ export const zMemoryStoreCreateBody = z.object({
1021
+ name: z.string().min(1).max(256),
1022
+ description: z.string().optional().default(''),
1023
+ prompt: z.string().max(4096).nullish().default(null)
1024
+ });
1025
+ /**
1026
+ * Created memory store
1027
+ */
1028
+ export const zMemoryStoreCreateResponse = zMemoryStore;
1029
+ export const zMemoryStoreGetPath = z.object({
1030
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1031
+ });
1032
+ /**
1033
+ * Memory store details
1034
+ */
1035
+ export const zMemoryStoreGetResponse = zMemoryStore;
1036
+ export const zMemoryStoreUpdateBody = z.object({
1037
+ name: z.string().min(1).max(256).optional(),
1038
+ description: z.string().optional(),
1039
+ prompt: z.string().max(4096).nullish()
1040
+ });
1041
+ export const zMemoryStoreUpdatePath = z.object({
1042
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1043
+ });
1044
+ /**
1045
+ * Updated memory store
1046
+ */
1047
+ export const zMemoryStoreUpdateResponse = zMemoryStore;
1048
+ export const zMemoryStoreArchivePath = z.object({
1049
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1050
+ });
1051
+ /**
1052
+ * Archived memory store
1053
+ */
1054
+ export const zMemoryStoreArchiveResponse = zMemoryStore;
1055
+ export const zMemoryStoreFilesDeletePath = z.object({
1056
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1057
+ });
1058
+ export const zMemoryStoreFilesDeleteQuery = z.object({
1059
+ path: z.string().min(1)
1060
+ });
1061
+ /**
1062
+ * Deleted
1063
+ */
1064
+ export const zMemoryStoreFilesDeleteResponse = z.object({
1065
+ ok: z.literal(true)
1066
+ });
1067
+ export const zMemoryStoreFilesListPath = z.object({
1068
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1069
+ });
1070
+ export const zMemoryStoreFilesListQuery = z.object({
1071
+ prefix: z.string().optional(),
1072
+ limit: z.int().gt(0).lte(1000).optional()
1073
+ });
1074
+ /**
1075
+ * Files under the given prefix
1076
+ */
1077
+ export const zMemoryStoreFilesListResponse = z.array(zMemoryStoreFile);
1078
+ export const zMemoryStoreFilesUploadPath = z.object({
1079
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1080
+ });
1081
+ /**
1082
+ * Uploaded file info
1083
+ */
1084
+ export const zMemoryStoreFilesUploadResponse = z.array(zMemoryStoreFile);
1085
+ export const zMemoryStoreFilesDownloadPath = z.object({
1086
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1087
+ });
1088
+ export const zMemoryStoreFilesDownloadQuery = z.object({
1089
+ path: z.string().min(1)
1090
+ });
1091
+ export const zMemoryStoreFilesRenameBody = z.object({
1092
+ from: z.string().min(1),
1093
+ to: z.string().min(1),
1094
+ overwrite: z.boolean().optional(),
1095
+ contentType: z.string().optional()
1096
+ });
1097
+ export const zMemoryStoreFilesRenamePath = z.object({
1098
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1099
+ });
1100
+ /**
1101
+ * Renamed file info
1102
+ */
1103
+ export const zMemoryStoreFilesRenameResponse = zMemoryStoreFile;
1104
+ /**
1105
+ * List of PATs
1106
+ */
1107
+ export const zPatListResponse = z.array(zPat);
1108
+ export const zPatCreateBody = z.object({
1109
+ name: z.string().min(1).max(128),
1110
+ scopes: z.array(z.string()).min(1),
1111
+ expiresAt: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).nullish().default(null)
1112
+ });
1113
+ /**
1114
+ * Created PAT (token shown once)
1115
+ */
1116
+ export const zPatCreateResponse = z.object({
1117
+ pat: zPat,
1118
+ token: z.string()
1119
+ });
1120
+ export const zPatRevokePath = z.object({
1121
+ id: z.string().regex(/^pat_[0-9A-HJKMNP-TV-Z]{26}$/)
1122
+ });
1123
+ /**
1124
+ * Revoked PAT
1125
+ */
1126
+ export const zPatRevokeResponse = zPat;
1127
+ export const zPodListQuery = z.object({
1128
+ orgId: z.string().optional(),
1129
+ limit: z.number().gte(1).lte(100).optional(),
1130
+ offset: z.number().gte(0).optional(),
1131
+ userId: z.string().nullish()
1132
+ });
1133
+ /**
1134
+ * List of pods
1135
+ */
1136
+ export const zPodListResponse = z.array(zPod);
1137
+ export const zPodCreateBody = z.object({
1138
+ name: z.string().min(1).max(256),
1139
+ environmentId: z.string().nullish().default(null),
1140
+ description: z.string().optional().default(''),
1141
+ isPrivate: z.boolean().optional().default(true)
1142
+ });
1143
+ /**
1144
+ * Created pod
1145
+ */
1146
+ export const zPodCreateResponse = zPod;
1147
+ export const zPodGetPath = z.object({
1148
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1149
+ });
1150
+ /**
1151
+ * Pod details
1152
+ */
1153
+ export const zPodGetResponse = zPod;
1154
+ export const zPodUpdateBody = z.object({
1155
+ name: z.string().min(1).max(256).optional(),
1156
+ description: z.string().optional(),
1157
+ isPrivate: z.boolean().optional(),
1158
+ environmentId: z.string().nullish()
1159
+ });
1160
+ export const zPodUpdatePath = z.object({
1161
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1162
+ });
1163
+ /**
1164
+ * Updated pod
1165
+ */
1166
+ export const zPodUpdateResponse = zPod;
1167
+ export const zPodArchivePath = z.object({
1168
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1169
+ });
1170
+ /**
1171
+ * Archived pod
1172
+ */
1173
+ export const zPodArchiveResponse = zPod;
1174
+ export const zPodMemberListPath = z.object({
1175
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1176
+ });
1177
+ /**
1178
+ * List of members
1179
+ */
1180
+ export const zPodMemberListResponse = z.array(zPodMember);
1181
+ export const zPodMemberAddBody = z.object({
1182
+ userId: z.string().regex(/^usr_[0-9A-HJKMNP-TV-Z]{26}$/),
1183
+ role: z.enum(['owner', 'member']).optional().default('member')
1184
+ });
1185
+ export const zPodMemberAddPath = z.object({
1186
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1187
+ });
1188
+ /**
1189
+ * Added member
1190
+ */
1191
+ export const zPodMemberAddResponse = zPodMember;
1192
+ export const zPodMemberRemovePath = z.object({
1193
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
1194
+ userId: z.string().regex(/^usr_[0-9A-HJKMNP-TV-Z]{26}$/)
1195
+ });
1196
+ /**
1197
+ * Removed member
1198
+ */
1199
+ export const zPodMemberRemoveResponse = zPodMember;
1200
+ export const zPodVaultListPath = z.object({
1201
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1202
+ });
1203
+ /**
1204
+ * List of vault associations
1205
+ */
1206
+ export const zPodVaultListResponse = z.array(zPodVault);
1207
+ export const zPodVaultAddBody = z.object({
1208
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
1209
+ priority: z.int().gte(-9007199254740991).lte(9007199254740991).optional().default(0)
1210
+ });
1211
+ export const zPodVaultAddPath = z.object({
1212
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1213
+ });
1214
+ /**
1215
+ * Added vault
1216
+ */
1217
+ export const zPodVaultAddResponse = zPodVault;
1218
+ export const zPodVaultRemovePath = z.object({
1219
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
1220
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
1221
+ });
1222
+ /**
1223
+ * Removed vault
1224
+ */
1225
+ export const zPodVaultRemoveResponse = zPodVault;
1226
+ export const zPodSandboxCurrentPath = z.object({
1227
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1228
+ });
1229
+ /**
1230
+ * Current sandbox
1231
+ */
1232
+ export const zPodSandboxCurrentResponse = zSandbox;
1233
+ export const zPodSandboxProvisionPath = z.object({
1234
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
1235
+ });
1236
+ /**
1237
+ * Existing active sandbox (no-op)
1238
+ */
1239
+ export const zPodSandboxProvisionResponse = zSandbox;
1240
+ export const zPodProjectListPath = z.object({
1241
+ podId: z.string()
1242
+ });
1243
+ export const zPodProjectListQuery = z.object({
1244
+ limit: z.number().gte(1).lte(100).optional(),
1245
+ offset: z.number().gte(0).optional()
1246
+ });
1247
+ /**
1248
+ * List of projects
1249
+ */
1250
+ export const zPodProjectListResponse = z.array(zProject);
1251
+ export const zPodProjectCreateBody = z.object({
1252
+ name: z.string().min(1).max(256),
1253
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/),
1254
+ description: z.string().optional().default(''),
1255
+ path: z.string().nullish().default(null),
1256
+ permission: z.array(zPermissionRule).optional().default([]),
1257
+ gitRepos: z.array(zGitRepo).optional().default([])
1258
+ });
1259
+ export const zPodProjectCreatePath = z.object({
1260
+ podId: z.string()
1261
+ });
1262
+ /**
1263
+ * Created project
1264
+ */
1265
+ export const zPodProjectCreateResponse = zProject;
1266
+ export const zPodProjectGetPath = z.object({
1267
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1268
+ podId: z.string()
1269
+ });
1270
+ /**
1271
+ * Project details
1272
+ */
1273
+ export const zPodProjectGetResponse = zProject;
1274
+ export const zPodProjectUpdateBody = z.object({
1275
+ name: z.string().min(1).max(256).optional(),
1276
+ description: z.string().optional(),
1277
+ path: z.string().nullish(),
1278
+ permission: z.array(zPermissionRule).optional(),
1279
+ gitRepos: z.array(zGitRepo).optional()
1280
+ });
1281
+ export const zPodProjectUpdatePath = z.object({
1282
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1283
+ podId: z.string()
1284
+ });
1285
+ /**
1286
+ * Updated project
1287
+ */
1288
+ export const zPodProjectUpdateResponse = zProject;
1289
+ export const zPodProjectArchivePath = z.object({
1290
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1291
+ podId: z.string()
1292
+ });
1293
+ /**
1294
+ * Archived project
1295
+ */
1296
+ export const zPodProjectArchiveResponse = zProject;
1297
+ export const zPodProjectAgentListPath = z.object({
1298
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1299
+ podId: z.string()
1300
+ });
1301
+ /**
1302
+ * List of agent memberships
1303
+ */
1304
+ export const zPodProjectAgentListResponse = z.array(zProjectAgent);
1305
+ export const zPodProjectAgentAddBody = z.object({
1306
+ agentId: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1307
+ agentVersionId: z.string().nullish().default(null),
1308
+ type: z.enum(['primary', 'subagent']).optional().default('subagent')
1309
+ });
1310
+ export const zPodProjectAgentAddPath = z.object({
1311
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1312
+ podId: z.string()
1313
+ });
1314
+ /**
1315
+ * Added agent
1316
+ */
1317
+ export const zPodProjectAgentAddResponse = zProjectAgent;
1318
+ export const zPodProjectAgentRemovePath = z.object({
1319
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1320
+ agentId: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1321
+ podId: z.string()
1322
+ });
1323
+ /**
1324
+ * Removed agent
1325
+ */
1326
+ export const zPodProjectAgentRemoveResponse = zProjectAgent;
1327
+ export const zPodProjectFileStoreListPath = z.object({
1328
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1329
+ podId: z.string()
1330
+ });
1331
+ /**
1332
+ * List of file store attachments
1333
+ */
1334
+ export const zPodProjectFileStoreListResponse = z.array(zProjectFileStore);
1335
+ export const zPodProjectFileStoreAddBody = z.object({
1336
+ resources: z.array(zFileStoreResource).optional().default([]),
1337
+ fileStoreId: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/)
1338
+ });
1339
+ export const zPodProjectFileStoreAddPath = z.object({
1340
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1341
+ podId: z.string()
1342
+ });
1343
+ /**
1344
+ * Attached file store
1345
+ */
1346
+ export const zPodProjectFileStoreAddResponse = zProjectFileStore;
1347
+ export const zPodProjectFileStoreRemovePath = z.object({
1348
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1349
+ fileStoreId: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
1350
+ podId: z.string()
1351
+ });
1352
+ /**
1353
+ * Detached file store
1354
+ */
1355
+ export const zPodProjectFileStoreRemoveResponse = zProjectFileStore;
1356
+ export const zPodProjectMemoryStoreListPath = z.object({
1357
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1358
+ podId: z.string()
1359
+ });
1360
+ /**
1361
+ * List of memory store attachments
1362
+ */
1363
+ export const zPodProjectMemoryStoreListResponse = z.array(zProjectMemoryStore);
1364
+ export const zPodProjectMemoryStoreAddBody = z.object({
1365
+ memoryStoreId: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/)
1366
+ });
1367
+ export const zPodProjectMemoryStoreAddPath = z.object({
1368
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1369
+ podId: z.string()
1370
+ });
1371
+ /**
1372
+ * Attached memory store
1373
+ */
1374
+ export const zPodProjectMemoryStoreAddResponse = zProjectMemoryStore;
1375
+ export const zPodProjectMemoryStoreRemovePath = z.object({
1376
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1377
+ memoryStoreId: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
1378
+ podId: z.string()
1379
+ });
1380
+ /**
1381
+ * Detached memory store
1382
+ */
1383
+ export const zPodProjectMemoryStoreRemoveResponse = zProjectMemoryStore;
1384
+ export const zPodProjectRoutineListPath = z.object({
1385
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1386
+ podId: z.string()
1387
+ });
1388
+ export const zPodProjectRoutineListQuery = z.object({
1389
+ limit: z.number().gte(1).lte(100).optional(),
1390
+ offset: z.number().gte(0).optional()
1391
+ });
1392
+ /**
1393
+ * List of routines in this project
1394
+ */
1395
+ export const zPodProjectRoutineListResponse = z.array(zRoutine);
1396
+ export const zPodProjectRoutinesRunsListAllPath = z.object({
1397
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1398
+ podId: z.string()
1399
+ });
1400
+ export const zPodProjectRoutinesRunsListAllQuery = z.object({
1401
+ status: z.enum([
1402
+ 'pending',
1403
+ 'running',
1404
+ 'completed',
1405
+ 'failed',
1406
+ 'cancelled'
1407
+ ]).optional(),
1408
+ sessionId: z.string().nullish(),
1409
+ limit: z.number().gte(1).lte(100).optional(),
1410
+ offset: z.number().gte(0).optional(),
1411
+ createdAfter: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional(),
1412
+ createdBefore: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
1413
+ });
1414
+ /**
1415
+ * List of routine runs in this project
1416
+ */
1417
+ export const zPodProjectRoutinesRunsListAllResponse = z.array(zRoutineRun);
1418
+ export const zPodSessionListPath = z.object({
1419
+ podId: z.string()
1420
+ });
1421
+ export const zPodSessionListQuery = z.object({
1422
+ projectId: z.string().optional(),
1423
+ createdById: z.string().optional(),
1424
+ limit: z.number().gte(1).lte(100).optional(),
1425
+ offset: z.number().gte(0).optional(),
1426
+ orgId: z.string().optional()
1427
+ });
1428
+ /**
1429
+ * List of sessions
1430
+ */
1431
+ export const zPodSessionListResponse = z.array(zOpencodeSession);
1432
+ export const zPodSessionCreateBody = z.object({
1433
+ id: z.string(),
1434
+ projectId: z.string(),
1435
+ slug: z.string(),
1436
+ directory: z.string(),
1437
+ title: z.string().min(1).max(512),
1438
+ version: z.string(),
1439
+ shareUrl: z.string().nullish().default(null),
1440
+ parentId: z.string().nullish().default(null)
1441
+ });
1442
+ export const zPodSessionCreatePath = z.object({
1443
+ podId: z.string()
1444
+ });
1445
+ /**
1446
+ * Created session
1447
+ */
1448
+ export const zPodSessionCreateResponse = zOpencodeSession;
1449
+ export const zPodSessionGetPath = z.object({
1450
+ id: z.string().min(1),
1451
+ podId: z.string()
1452
+ });
1453
+ /**
1454
+ * Session details
1455
+ */
1456
+ export const zPodSessionGetResponse = zOpencodeSession;
1457
+ export const zPodSessionUpdateBody = z.object({
1458
+ title: z.string().optional(),
1459
+ shareUrl: z.string().nullish(),
1460
+ summaryAdditions: z.number().nullish(),
1461
+ summaryDeletions: z.number().nullish(),
1462
+ summaryFiles: z.number().nullish()
1463
+ });
1464
+ export const zPodSessionUpdatePath = z.object({
1465
+ id: z.string().min(1),
1466
+ podId: z.string()
1467
+ });
1468
+ /**
1469
+ * Updated session
1470
+ */
1471
+ export const zPodSessionUpdateResponse = zOpencodeSession;
1472
+ export const zPodSessionArchivePath = z.object({
1473
+ id: z.string().min(1),
1474
+ podId: z.string()
1475
+ });
1476
+ /**
1477
+ * Archived session
1478
+ */
1479
+ export const zPodSessionArchiveResponse = zOpencodeSession;
1480
+ export const zPodSessionMessageListPath = z.object({
1481
+ id: z.string().min(1),
1482
+ podId: z.string()
1483
+ });
1484
+ export const zPodSessionMessageListQuery = z.object({
1485
+ limit: z.number().gte(1).lte(100).optional(),
1486
+ offset: z.number().gte(0).optional()
1487
+ });
1488
+ /**
1489
+ * List of messages
1490
+ */
1491
+ export const zPodSessionMessageListResponse = z.array(zOpencodeMessage);
1492
+ export const zPodRoutineListPath = z.object({
1493
+ podId: z.string()
1494
+ });
1495
+ export const zPodRoutineListQuery = z.object({
1496
+ projectId: z.string().optional(),
1497
+ limit: z.number().gte(1).lte(100).optional(),
1498
+ offset: z.number().gte(0).optional()
1499
+ });
1500
+ /**
1501
+ * List of routines
1502
+ */
1503
+ export const zPodRoutineListResponse = z.array(zRoutine);
1504
+ export const zPodRoutineCreateBody = z.object({
1505
+ projectId: z.string(),
1506
+ projectAgentId: z.string(),
1507
+ name: z.string().min(1).max(256),
1508
+ prompt: z.string().min(1),
1509
+ description: z.string().nullish().default(''),
1510
+ status: z.enum(['active', 'paused']).optional().default('active')
1511
+ });
1512
+ export const zPodRoutineCreatePath = z.object({
1513
+ podId: z.string()
1514
+ });
1515
+ /**
1516
+ * Created routine
1517
+ */
1518
+ export const zPodRoutineCreateResponse = zRoutine;
1519
+ export const zPodRoutineGetPath = z.object({
1520
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1521
+ podId: z.string()
1522
+ });
1523
+ /**
1524
+ * Routine details
1525
+ */
1526
+ export const zPodRoutineGetResponse = zRoutine;
1527
+ export const zPodRoutineUpdateBody = z.object({
1528
+ name: z.string().min(1).max(256).optional(),
1529
+ description: z.string().nullish(),
1530
+ prompt: z.string().min(1).optional(),
1531
+ projectAgentId: z.string().optional(),
1532
+ status: z.enum(['active', 'paused']).optional()
1533
+ });
1534
+ export const zPodRoutineUpdatePath = z.object({
1535
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1536
+ podId: z.string()
1537
+ });
1538
+ /**
1539
+ * Updated routine
1540
+ */
1541
+ export const zPodRoutineUpdateResponse = zRoutine;
1542
+ export const zPodRoutineArchivePath = z.object({
1543
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1544
+ podId: z.string()
1545
+ });
1546
+ /**
1547
+ * Archived routine
1548
+ */
1549
+ export const zPodRoutineArchiveResponse = zRoutine;
1550
+ export const zPodRoutinePausePath = z.object({
1551
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1552
+ podId: z.string()
1553
+ });
1554
+ /**
1555
+ * Paused routine
1556
+ */
1557
+ export const zPodRoutinePauseResponse = zRoutine;
1558
+ export const zPodRoutineResumePath = z.object({
1559
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1560
+ podId: z.string()
1561
+ });
1562
+ /**
1563
+ * Resumed routine
1564
+ */
1565
+ export const zPodRoutineResumeResponse = zRoutine;
1566
+ export const zPodRoutineCronTriggerListPath = z.object({
1567
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1568
+ podId: z.string()
1569
+ });
1570
+ export const zPodRoutineCronTriggerListQuery = z.object({
1571
+ limit: z.number().gte(1).lte(100).optional(),
1572
+ offset: z.number().gte(0).optional()
1573
+ });
1574
+ /**
1575
+ * List of cron triggers
1576
+ */
1577
+ export const zPodRoutineCronTriggerListResponse = z.array(zCronTrigger);
1578
+ export const zPodRoutineCronTriggerCreateBody = z.object({
1579
+ schedule: z.string().min(1),
1580
+ timezone: z.string().nullish().default(null),
1581
+ isEnabled: z.boolean().optional().default(true)
1582
+ });
1583
+ export const zPodRoutineCronTriggerCreatePath = z.object({
1584
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1585
+ podId: z.string()
1586
+ });
1587
+ /**
1588
+ * Created cron trigger
1589
+ */
1590
+ export const zPodRoutineCronTriggerCreateResponse = zCronTrigger;
1591
+ export const zPodRoutineCronTriggerGetPath = z.object({
1592
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1593
+ triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1594
+ podId: z.string()
1595
+ });
1596
+ /**
1597
+ * Cron trigger details
1598
+ */
1599
+ export const zPodRoutineCronTriggerGetResponse = zCronTrigger;
1600
+ export const zPodRoutineCronTriggerUpdateBody = z.object({
1601
+ schedule: z.string().min(1).optional(),
1602
+ timezone: z.string().nullish(),
1603
+ isEnabled: z.boolean().optional()
1604
+ });
1605
+ export const zPodRoutineCronTriggerUpdatePath = z.object({
1606
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1607
+ triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1608
+ podId: z.string()
1609
+ });
1610
+ /**
1611
+ * Updated cron trigger
1612
+ */
1613
+ export const zPodRoutineCronTriggerUpdateResponse = zCronTrigger;
1614
+ export const zPodRoutineCronTriggerArchivePath = z.object({
1615
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1616
+ triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1617
+ podId: z.string()
1618
+ });
1619
+ /**
1620
+ * Archived cron trigger
1621
+ */
1622
+ export const zPodRoutineCronTriggerArchiveResponse = zCronTrigger;
1623
+ export const zPodRoutineWebhookTriggerListPath = z.object({
1624
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1625
+ podId: z.string()
1626
+ });
1627
+ export const zPodRoutineWebhookTriggerListQuery = z.object({
1628
+ limit: z.number().gte(1).lte(100).optional(),
1629
+ offset: z.number().gte(0).optional()
1630
+ });
1631
+ /**
1632
+ * List of webhook triggers
1633
+ */
1634
+ export const zPodRoutineWebhookTriggerListResponse = z.array(zWebhookTrigger);
1635
+ export const zPodRoutineWebhookTriggerCreateBody = z.object({
1636
+ source: z.string().nullish().default(null),
1637
+ secret: z.string().nullish().default(null),
1638
+ eventFilters: z.record(z.string(), z.string()).nullish().default(null),
1639
+ isEnabled: z.boolean().optional().default(true)
1640
+ });
1641
+ export const zPodRoutineWebhookTriggerCreatePath = z.object({
1642
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1643
+ podId: z.string()
1644
+ });
1645
+ /**
1646
+ * Created webhook trigger
1647
+ */
1648
+ export const zPodRoutineWebhookTriggerCreateResponse = zWebhookTrigger;
1649
+ export const zPodRoutineWebhookTriggerGetPath = z.object({
1650
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1651
+ triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1652
+ podId: z.string()
1653
+ });
1654
+ /**
1655
+ * Webhook trigger details
1656
+ */
1657
+ export const zPodRoutineWebhookTriggerGetResponse = zWebhookTrigger;
1658
+ export const zPodRoutineWebhookTriggerUpdateBody = z.object({
1659
+ source: z.string().nullish(),
1660
+ secret: z.string().nullish(),
1661
+ eventFilters: z.record(z.string(), z.string()).nullish(),
1662
+ isEnabled: z.boolean().optional()
1663
+ });
1664
+ export const zPodRoutineWebhookTriggerUpdatePath = z.object({
1665
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1666
+ triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1667
+ podId: z.string()
1668
+ });
1669
+ /**
1670
+ * Updated webhook trigger
1671
+ */
1672
+ export const zPodRoutineWebhookTriggerUpdateResponse = zWebhookTrigger;
1673
+ export const zPodRoutineWebhookTriggerArchivePath = z.object({
1674
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1675
+ triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1676
+ podId: z.string()
1677
+ });
1678
+ /**
1679
+ * Archived webhook trigger
1680
+ */
1681
+ export const zPodRoutineWebhookTriggerArchiveResponse = zWebhookTrigger;
1682
+ export const zPodRoutineApiTriggerListPath = z.object({
1683
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1684
+ podId: z.string()
1685
+ });
1686
+ export const zPodRoutineApiTriggerListQuery = z.object({
1687
+ limit: z.number().gte(1).lte(100).optional(),
1688
+ offset: z.number().gte(0).optional()
1689
+ });
1690
+ /**
1691
+ * List of API triggers
1692
+ */
1693
+ export const zPodRoutineApiTriggerListResponse = z.array(zApiTrigger);
1694
+ export const zPodRoutineApiTriggerCreateBody = z.object({
1695
+ isEnabled: z.boolean().optional().default(true)
1696
+ });
1697
+ export const zPodRoutineApiTriggerCreatePath = z.object({
1698
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1699
+ podId: z.string()
1700
+ });
1701
+ /**
1702
+ * Created API trigger with one-time plaintext token
1703
+ */
1704
+ export const zPodRoutineApiTriggerCreateResponse = zApiTriggerCreated;
1705
+ export const zPodRoutineApiTriggerRotatePath = z.object({
1706
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1707
+ triggerId: z.string().regex(/^atrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1708
+ podId: z.string()
1709
+ });
1710
+ /**
1711
+ * Rotated API trigger with new plaintext token
1712
+ */
1713
+ export const zPodRoutineApiTriggerRotateResponse = zApiTriggerCreated;
1714
+ export const zPodRoutineApiTriggerGetPath = z.object({
1715
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1716
+ triggerId: z.string().regex(/^atrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1717
+ podId: z.string()
1718
+ });
1719
+ /**
1720
+ * API trigger details
1721
+ */
1722
+ export const zPodRoutineApiTriggerGetResponse = zApiTrigger;
1723
+ export const zPodRoutineApiTriggerUpdateBody = z.object({
1724
+ isEnabled: z.boolean().optional()
1725
+ });
1726
+ export const zPodRoutineApiTriggerUpdatePath = z.object({
1727
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1728
+ triggerId: z.string().regex(/^atrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1729
+ podId: z.string()
1730
+ });
1731
+ /**
1732
+ * Updated API trigger
1733
+ */
1734
+ export const zPodRoutineApiTriggerUpdateResponse = zApiTrigger;
1735
+ export const zPodRoutineApiTriggerArchivePath = z.object({
1736
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1737
+ triggerId: z.string().regex(/^atrg_[0-9A-HJKMNP-TV-Z]{26}$/),
1738
+ podId: z.string()
1739
+ });
1740
+ /**
1741
+ * Archived API trigger
1742
+ */
1743
+ export const zPodRoutineApiTriggerArchiveResponse = zApiTrigger;
1744
+ export const zPodRoutineRunsListPath = z.object({
1745
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1746
+ podId: z.string()
1747
+ });
1748
+ export const zPodRoutineRunsListQuery = z.object({
1749
+ status: z.enum([
1750
+ 'pending',
1751
+ 'running',
1752
+ 'completed',
1753
+ 'failed',
1754
+ 'cancelled'
1755
+ ]).optional(),
1756
+ sessionId: z.string().nullish(),
1757
+ limit: z.number().gte(1).lte(100).optional(),
1758
+ offset: z.number().gte(0).optional(),
1759
+ createdAfter: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional(),
1760
+ createdBefore: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
1761
+ });
1762
+ /**
1763
+ * List of routine runs
1764
+ */
1765
+ export const zPodRoutineRunsListResponse = z.array(zRoutineRun);
1766
+ export const zPodRoutineRunsCreateBody = z.record(z.string(), z.unknown());
1767
+ export const zPodRoutineRunsCreatePath = z.object({
1768
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1769
+ podId: z.string()
1770
+ });
1771
+ /**
1772
+ * Created routine run
1773
+ */
1774
+ export const zPodRoutineRunsCreateResponse = zRoutineRun;
1775
+ export const zPodRoutineRunsGetPath = z.object({
1776
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1777
+ runId: z.string().regex(/^rtr_[0-9A-HJKMNP-TV-Z]{26}$/),
1778
+ podId: z.string()
1779
+ });
1780
+ /**
1781
+ * Routine run details
1782
+ */
1783
+ export const zPodRoutineRunsGetResponse = zRoutineRun;
1784
+ export const zPodRoutineRunsStartPath = z.object({
1785
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1786
+ runId: z.string().regex(/^rtr_[0-9A-HJKMNP-TV-Z]{26}$/),
1787
+ podId: z.string()
1788
+ });
1789
+ /**
1790
+ * Run started
1791
+ */
1792
+ export const zPodRoutineRunsStartResponse = zRoutineRun;
1793
+ export const zPodRoutineRunsCompletePath = z.object({
1794
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1795
+ runId: z.string().regex(/^rtr_[0-9A-HJKMNP-TV-Z]{26}$/),
1796
+ podId: z.string()
1797
+ });
1798
+ /**
1799
+ * Run completed
1800
+ */
1801
+ export const zPodRoutineRunsCompleteResponse = zRoutineRun;
1802
+ export const zPodRoutineRunsFailBody = z.object({
1803
+ error: z.string().min(1)
1804
+ });
1805
+ export const zPodRoutineRunsFailPath = z.object({
1806
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1807
+ runId: z.string().regex(/^rtr_[0-9A-HJKMNP-TV-Z]{26}$/),
1808
+ podId: z.string()
1809
+ });
1810
+ /**
1811
+ * Run failed
1812
+ */
1813
+ export const zPodRoutineRunsFailResponse = zRoutineRun;
1814
+ export const zPodRoutineRunsCancelPath = z.object({
1815
+ id: z.string().regex(/^rtn_[0-9A-HJKMNP-TV-Z]{26}$/),
1816
+ runId: z.string().regex(/^rtr_[0-9A-HJKMNP-TV-Z]{26}$/),
1817
+ podId: z.string()
1818
+ });
1819
+ /**
1820
+ * Run cancelled
1821
+ */
1822
+ export const zPodRoutineRunsCancelResponse = zRoutineRun;
1823
+ export const zPodRoutinesRunsListAllPath = z.object({
1824
+ podId: z.string()
1825
+ });
1826
+ export const zPodRoutinesRunsListAllQuery = z.object({
1827
+ status: z.enum([
1828
+ 'pending',
1829
+ 'running',
1830
+ 'completed',
1831
+ 'failed',
1832
+ 'cancelled'
1833
+ ]).optional(),
1834
+ sessionId: z.string().nullish(),
1835
+ limit: z.number().gte(1).lte(100).optional(),
1836
+ offset: z.number().gte(0).optional(),
1837
+ createdAfter: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional(),
1838
+ createdBefore: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
1839
+ });
1840
+ /**
1841
+ * List of routine runs in this pod
1842
+ */
1843
+ export const zPodRoutinesRunsListAllResponse = z.array(zRoutineRun);
1844
+ export const zReplayListQuery = z.object({
1845
+ limit: z.number().gte(1).lte(100).optional(),
1846
+ offset: z.number().gte(0).optional(),
1847
+ publisherId: z.string().optional()
1848
+ });
1849
+ /**
1850
+ * List
1851
+ */
1852
+ export const zReplayListResponse = z.array(zReplay);
1853
+ export const zReplayCreateBody = z.object({
1854
+ sessionId: z.string(),
1855
+ publisherId: z.string(),
1856
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/),
1857
+ websiteMetadata: z.record(z.string(), z.unknown()).nullish().default(null)
1858
+ });
1859
+ /**
1860
+ * Created
1861
+ */
1862
+ export const zReplayCreateResponse = zReplay;
1863
+ export const zReplayGetPath = z.object({
1864
+ id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/)
1865
+ });
1866
+ /**
1867
+ * Details
1868
+ */
1869
+ export const zReplayGetResponse = zReplay;
1870
+ export const zReplayArchivePath = z.object({
1871
+ id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/)
1872
+ });
1873
+ /**
1874
+ * Archived
1875
+ */
1876
+ export const zReplayArchiveResponse = zReplay;
1877
+ export const zRoutinesRunsListAllQuery = z.object({
1878
+ status: z.enum([
1879
+ 'pending',
1880
+ 'running',
1881
+ 'completed',
1882
+ 'failed',
1883
+ 'cancelled'
1884
+ ]).optional(),
1885
+ sessionId: z.string().nullish(),
1886
+ limit: z.number().gte(1).lte(100).optional(),
1887
+ offset: z.number().gte(0).optional(),
1888
+ createdAfter: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional(),
1889
+ createdBefore: z.iso.datetime().regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/).optional()
1890
+ });
1891
+ /**
1892
+ * List of routine runs for this user's routines
1893
+ */
1894
+ export const zRoutinesRunsListAllResponse = z.array(zRoutineRun);
1895
+ export const zSessionListQuery = z.object({
1896
+ projectId: z.string().optional(),
1897
+ createdById: z.string().optional(),
1898
+ limit: z.number().gte(1).lte(100).optional(),
1899
+ offset: z.number().gte(0).optional()
1900
+ });
1901
+ /**
1902
+ * List of sessions
1903
+ */
1904
+ export const zSessionListResponse = z.array(zOpencodeSession);
1905
+ export const zSessionGetPath = z.object({
1906
+ id: z.string().min(1)
1907
+ });
1908
+ /**
1909
+ * Session details
1910
+ */
1911
+ export const zSessionGetResponse = zOpencodeSession;
1912
+ export const zSkillListQuery = z.object({
1913
+ limit: z.number().gte(1).lte(100).optional(),
1914
+ offset: z.number().gte(0).optional()
1915
+ });
1916
+ /**
1917
+ * List of skills
1918
+ */
1919
+ export const zSkillListResponse = z.array(zSkill);
1920
+ /**
1921
+ * Created skill
1922
+ */
1923
+ export const zSkillCreateResponse = zSkill;
1924
+ export const zSkillGetBySlugPath = z.object({
1925
+ slug: z.string().min(1).max(128).regex(/^[a-z0-9-]+$/)
1926
+ });
1927
+ /**
1928
+ * Skill details
1929
+ */
1930
+ export const zSkillGetBySlugResponse = zSkill;
1931
+ export const zSkillGetPath = z.object({
1932
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1933
+ });
1934
+ /**
1935
+ * Skill details
1936
+ */
1937
+ export const zSkillGetResponse = zSkill;
1938
+ export const zSkillUpdateBody = z.object({
1939
+ name: z.string().optional(),
1940
+ description: z.string().nullish(),
1941
+ icon: z.string().nullish()
1942
+ });
1943
+ export const zSkillUpdatePath = z.object({
1944
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1945
+ });
1946
+ /**
1947
+ * Updated skill
1948
+ */
1949
+ export const zSkillUpdateResponse = zSkill;
1950
+ export const zSkillArchivePath = z.object({
1951
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1952
+ });
1953
+ /**
1954
+ * Archived skill
1955
+ */
1956
+ export const zSkillArchiveResponse = zSkill;
1957
+ export const zSkillCopyBody = z.object({
1958
+ name: z.string(),
1959
+ version: z.string().optional()
1960
+ });
1961
+ export const zSkillCopyPath = z.object({
1962
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1963
+ });
1964
+ /**
1965
+ * Copied skill
1966
+ */
1967
+ export const zSkillCopyResponse = zSkill;
1968
+ export const zSkillVersionListPath = z.object({
1969
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1970
+ });
1971
+ export const zSkillVersionListQuery = z.object({
1972
+ limit: z.number().gte(1).lte(100).optional(),
1973
+ offset: z.number().gte(0).optional()
1974
+ });
1975
+ /**
1976
+ * List of skill versions
1977
+ */
1978
+ export const zSkillVersionListResponse = z.array(zSkillVersion);
1979
+ export const zSkillVersionCreatePath = z.object({
1980
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
1981
+ });
1982
+ /**
1983
+ * Created skill version
1984
+ */
1985
+ export const zSkillVersionCreateResponse = zSkillVersion;
1986
+ export const zSkillVersionGetPath = z.object({
1987
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
1988
+ version: z.string().min(1).max(32)
1989
+ });
1990
+ /**
1991
+ * Skill version details
1992
+ */
1993
+ export const zSkillVersionGetResponse = zSkillVersion;
1994
+ export const zSkillVersionDataPath = z.object({
1995
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
1996
+ version: z.string().min(1).max(32)
1997
+ });
1998
+ export const zSkillVersionDataQuery = z.object({
1999
+ format: z.enum(['json', 'presigned']).optional()
2000
+ });
2001
+ /**
2002
+ * Extracted files, presigned URL, or git source descriptor
2003
+ */
2004
+ export const zSkillVersionDataResponse = z.union([
2005
+ z.object({
2006
+ files: z.array(z.object({
2007
+ path: z.string(),
2008
+ content: z.string()
2009
+ }))
2010
+ }),
2011
+ z.object({
2012
+ url: z.url()
2013
+ }),
2014
+ z.object({
2015
+ type: z.literal('git'),
2016
+ url: z.url(),
2017
+ ref: z.string().optional(),
2018
+ path: z.string().optional()
2019
+ })
2020
+ ]);
2021
+ export const zSkillVersionArchivePath = z.object({
2022
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
2023
+ version: z.string().min(1).max(32)
2024
+ });
2025
+ /**
2026
+ * Archived skill version
2027
+ */
2028
+ export const zSkillVersionArchiveResponse = zSkillVersion;
2029
+ export const zVaultListQuery = z.object({
2030
+ limit: z.number().gte(1).lte(100).optional(),
2031
+ offset: z.number().gte(0).optional()
2032
+ });
2033
+ /**
2034
+ * List of vaults
2035
+ */
2036
+ export const zVaultListResponse = z.array(zVault);
2037
+ export const zVaultCreateBody = z.object({
2038
+ name: z.string().min(1).max(256),
2039
+ description: z.string().optional().default('')
2040
+ });
2041
+ /**
2042
+ * Created vault
2043
+ */
2044
+ export const zVaultCreateResponse = zVault;
2045
+ export const zVaultDeletePath = z.object({
2046
+ id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2047
+ });
2048
+ /**
2049
+ * Deleted vault
2050
+ */
2051
+ export const zVaultDeleteResponse = zVault;
2052
+ export const zVaultGetPath = z.object({
2053
+ id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2054
+ });
2055
+ /**
2056
+ * Vault details
2057
+ */
2058
+ export const zVaultGetResponse = zVault;
2059
+ export const zVaultUpdateBody = z.object({
2060
+ name: z.string().min(1).max(256).optional(),
2061
+ description: z.string().optional()
2062
+ });
2063
+ export const zVaultUpdatePath = z.object({
2064
+ id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2065
+ });
2066
+ /**
2067
+ * Updated vault
2068
+ */
2069
+ export const zVaultUpdateResponse = zVault;
2070
+ export const zVaultArchivePath = z.object({
2071
+ id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2072
+ });
2073
+ /**
2074
+ * Archived vault
2075
+ */
2076
+ export const zVaultArchiveResponse = zVault;
2077
+ export const zCredentialListPath = z.object({
2078
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2079
+ });
2080
+ export const zCredentialListQuery = z.object({
2081
+ limit: z.number().gte(1).lte(100).optional(),
2082
+ offset: z.number().gte(0).optional()
2083
+ });
2084
+ /**
2085
+ * List of credentials
2086
+ */
2087
+ export const zCredentialListResponse = z.array(zCredential);
2088
+ export const zCredentialCreateBody = z.object({
2089
+ name: z.string().min(1).max(256),
2090
+ mcpId: z.string().nullish().default(null),
2091
+ label: z.string().min(1).max(64).regex(/^[A-Z0-9_]+$/).nullish().default(null),
2092
+ auth: zCredentialAuth
2093
+ });
2094
+ export const zCredentialCreatePath = z.object({
2095
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2096
+ });
2097
+ /**
2098
+ * Created credential
2099
+ */
2100
+ export const zCredentialCreateResponse = zCredential;
2101
+ export const zCredentialDeletePath = z.object({
2102
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2103
+ id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/)
2104
+ });
2105
+ /**
2106
+ * Deleted credential
2107
+ */
2108
+ export const zCredentialDeleteResponse = zCredential;
2109
+ export const zCredentialGetPath = z.object({
2110
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2111
+ id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/)
2112
+ });
2113
+ /**
2114
+ * Credential details
2115
+ */
2116
+ export const zCredentialGetResponse = zCredential;
2117
+ export const zCredentialUpdateBody = z.object({
2118
+ name: z.string().min(1).max(256).optional(),
2119
+ auth: zCredentialAuth.optional()
2120
+ });
2121
+ export const zCredentialUpdatePath = z.object({
2122
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2123
+ id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/)
2124
+ });
2125
+ /**
2126
+ * Updated credential
2127
+ */
2128
+ export const zCredentialUpdateResponse = zCredential;
2129
+ export const zCredentialArchivePath = z.object({
2130
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2131
+ id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/)
2132
+ });
2133
+ /**
2134
+ * Archived credential
2135
+ */
2136
+ export const zCredentialArchiveResponse = zCredential;
2137
+ export const zCredentialOauthStartBody = zOAuthStartInput;
2138
+ export const zCredentialOauthStartPath = z.object({
2139
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/)
2140
+ });
2141
+ /**
2142
+ * Authorization URL for the user to visit
2143
+ */
2144
+ export const zCredentialOauthStartResponse = zOAuthStartResult;
2145
+ export const zCredentialOauthSessionPath = z.object({
2146
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2147
+ sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/)
2148
+ });
2149
+ /**
2150
+ * Session status snapshot
2151
+ */
2152
+ export const zCredentialOauthSessionResponse = zOAuthSessionStatus;
2153
+ export const zRegistryAgentListQuery = z.object({
2154
+ limit: z.number().gte(1).lte(100).optional(),
2155
+ offset: z.number().gte(0).optional()
2156
+ });
2157
+ /**
2158
+ * List of published agents
2159
+ */
2160
+ export const zRegistryAgentListResponse = z.array(zAgent);
2161
+ export const zRegistryAgentGetPath = z.object({
2162
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
2163
+ });
2164
+ /**
2165
+ * Agent details
2166
+ */
2167
+ export const zRegistryAgentGetResponse = zAgent;
2168
+ export const zRegistrySkillListQuery = z.object({
2169
+ limit: z.number().gte(1).lte(100).optional(),
2170
+ offset: z.number().gte(0).optional()
2171
+ });
2172
+ /**
2173
+ * List of published skills
2174
+ */
2175
+ export const zRegistrySkillListResponse = z.array(zSkill);
2176
+ export const zRegistrySkillGetPath = z.object({
2177
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/)
2178
+ });
2179
+ /**
2180
+ * Skill details
2181
+ */
2182
+ export const zRegistrySkillGetResponse = zSkill;
2183
+ export const zRegistryMcpListQuery = z.object({
2184
+ limit: z.number().gte(1).lte(100).optional(),
2185
+ offset: z.number().gte(0).optional()
2186
+ });
2187
+ /**
2188
+ * List of published MCPs
2189
+ */
2190
+ export const zRegistryMcpListResponse = z.array(zMcp);
2191
+ export const zRegistryMcpGetPath = z.object({
2192
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/)
2193
+ });
2194
+ /**
2195
+ * MCP details
2196
+ */
2197
+ export const zRegistryMcpGetResponse = zMcp;
2198
+ export const zRegistryComposioMcpListQuery = z.object({
2199
+ limit: z.number().gte(1).lte(100).optional(),
2200
+ offset: z.number().gte(0).optional()
2201
+ });
2202
+ /**
2203
+ * List of Composio MCPs
2204
+ */
2205
+ export const zRegistryComposioMcpListResponse = z.array(zComposioMcp);
2206
+ export const zRegistryComposioMcpGetPath = z.object({
2207
+ id: z.string().regex(/^cmcp_[0-9A-HJKMNP-TV-Z]{26}$/)
2208
+ });
2209
+ /**
2210
+ * Composio MCP details
2211
+ */
2212
+ export const zRegistryComposioMcpGetResponse = zComposioMcp;