@renai-labs/sdk 0.1.18 → 0.1.20

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.
@@ -76,49 +76,165 @@ export const zReplayPublicView = z.object({
76
76
  session: zReplayPublicSession,
77
77
  messages: z.array(zReplayMessage),
78
78
  });
79
- export const zBlueprintReplayRef = z.object({
80
- replayId: z.string(),
79
+ export const zPublisherLink = z.object({
80
+ label: z.string().min(1),
81
+ href: z.url(),
81
82
  });
82
- export const zBlueprintMcpRef = z.object({
83
- mcpId: z.string(),
83
+ export const zPublisherPublicView = z.object({
84
+ id: z.string(),
85
+ slug: z.string(),
86
+ handle: z.string(),
87
+ name: z.string(),
88
+ description: z.string().nullable(),
89
+ avatar: z.string().nullable(),
90
+ url: z.string().nullable(),
91
+ isVerified: z.boolean(),
92
+ links: z.array(zPublisherLink),
84
93
  });
85
- export const zBlueprintSkillRef = z.object({
86
- skillId: z.string(),
87
- versionId: z.string().nullable(),
94
+ export const zSpecPublicTriggerEntry = z.object({
95
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
96
+ ref: z
97
+ .object({
98
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
99
+ })
100
+ .optional(),
101
+ project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
102
+ agent: z
103
+ .string()
104
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
105
+ .optional(),
106
+ schedule: z.string(),
107
+ timezone: z.string().optional(),
108
+ until: z.iso
109
+ .datetime()
110
+ .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))$/)
111
+ .optional(),
112
+ inputMessage: z.string(),
113
+ enabled: z.boolean().optional(),
88
114
  });
89
- export const zBlueprintAgentRef = z.object({
90
- agentId: z.string(),
91
- versionId: z.string().nullable(),
115
+ export const zSpecChannelBinding = z.object({
116
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
117
+ kind: z.enum(["slack", "linear", "github", "telegram", "email"]),
118
+ purpose: z.string(),
119
+ agent: z
120
+ .string()
121
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
122
+ .optional(),
92
123
  });
93
- export const zBlueprintProjectEntry = z.object({
94
- name: z.string(),
95
- description: z.string().nullable(),
96
- permission: zPermissionConfig,
97
- parentId: z.string().nullish().default(null),
98
- agents: z.array(z.object({
99
- agentId: z.string(),
100
- type: z.enum(["primary", "subagent", "all"]),
101
- })),
102
- cronTriggers: z.array(z.object({
103
- inputMessage: z.string(),
104
- schedule: z.string(),
105
- timezone: z.string().nullable(),
106
- cronTriggerId: z.string(),
107
- agentId: z.string().nullable(),
108
- until: z.iso
109
- .datetime()
110
- .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))$/)
111
- .nullish()
112
- .default(null),
113
- })),
124
+ export const zSpecProjectAgent = z.object({
125
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
126
+ mode: z.enum(["subagent", "all"]).optional().default("all"),
127
+ });
128
+ export const zProjectReference = z.union([
129
+ z.string(),
130
+ z.object({
131
+ repository: z.string(),
132
+ branch: z.string().optional(),
133
+ description: z.string().optional(),
134
+ hidden: z.boolean().optional(),
135
+ }),
136
+ z.object({
137
+ path: z.string(),
138
+ description: z.string().optional(),
139
+ hidden: z.boolean().optional(),
140
+ }),
141
+ ]);
142
+ export const zProjectReferences = z.record(z.string(), zProjectReference);
143
+ export const zSpecRef = z.object({
144
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
145
+ versionId: z
146
+ .string()
147
+ .regex(/^[a-z]+_[A-Za-z0-9]+$/)
148
+ .optional(),
149
+ });
150
+ export const zSpecPublicProjectEntry = z.object({
151
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
152
+ ref: zSpecRef.optional(),
153
+ name: z.string().optional(),
154
+ description: z.string().optional(),
155
+ instructions: z.string().optional(),
156
+ references: zProjectReferences.optional(),
157
+ agents: z.array(zSpecProjectAgent).optional(),
158
+ skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
159
+ mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
160
+ channels: z.array(zSpecChannelBinding).optional(),
161
+ });
162
+ export const zSpecPublicMcpEntry = z.object({
163
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
164
+ ref: zSpecRef.optional(),
165
+ name: z.string().optional(),
166
+ registrySlug: z.string().optional(),
167
+ auth: z.enum(["oauth", "basic", "api_key", "none", "mcp_provider"]).optional(),
168
+ });
169
+ export const zSpecPublicSkillEntry = z.object({
170
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
171
+ ref: zSpecRef.optional(),
172
+ name: z.string().optional(),
173
+ registrySlug: z.string().optional(),
174
+ });
175
+ export const zSpecPublicAgentEntry = z.object({
176
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
177
+ ref: zSpecRef.optional(),
178
+ name: z.string().optional(),
179
+ model: z.string().optional(),
180
+ scope: z.enum(["org", "user", "registry"]).optional(),
181
+ skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
182
+ mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
183
+ });
184
+ export const zSpecInitialPrompt = z.object({
185
+ prompt: z.string(),
186
+ project: z
187
+ .string()
188
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
189
+ .optional(),
190
+ agent: z
191
+ .string()
192
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
193
+ .optional(),
194
+ });
195
+ export const zSpecPublic = z.object({
196
+ schemaVersion: z.literal(2),
197
+ meta: z.object({
198
+ name: z.string(),
199
+ description: z.string().optional(),
200
+ snapshotDate: z.string().optional(),
201
+ }),
202
+ instructions: z.string().optional(),
203
+ initialPrompt: zSpecInitialPrompt.optional(),
204
+ agents: z.array(zSpecPublicAgentEntry),
205
+ skills: z.array(zSpecPublicSkillEntry),
206
+ mcps: z.array(zSpecPublicMcpEntry),
207
+ projects: z.array(zSpecPublicProjectEntry),
208
+ triggers: z.array(zSpecPublicTriggerEntry),
209
+ environment: z
210
+ .object({
211
+ ref: z
212
+ .object({
213
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
214
+ })
215
+ .optional(),
216
+ })
217
+ .optional(),
114
218
  });
115
- export const zBlueprintTemplate = z.object({
116
- schemaVersion: z.literal(1),
117
- projects: z.array(zBlueprintProjectEntry),
118
- agents: z.array(zBlueprintAgentRef),
119
- skills: z.array(zBlueprintSkillRef),
120
- mcps: z.array(zBlueprintMcpRef),
121
- replays: z.array(zBlueprintReplayRef),
219
+ export const zBlueprintOutcome = z.object({
220
+ title: z.string().min(1),
221
+ description: z.string().min(1),
222
+ });
223
+ export const zBlueprintHowItWorksStep = z.object({
224
+ title: z.string().min(1),
225
+ description: z.string().min(1),
226
+ });
227
+ export const zBlueprintPageContent = z.object({
228
+ overview: z.string().optional(),
229
+ howItWorks: z.array(zBlueprintHowItWorksStep).optional().default([]),
230
+ useCases: z.array(z.string().min(1)).optional().default([]),
231
+ requirements: z.array(z.string().min(1)).optional().default([]),
232
+ setup: z.array(z.string().min(1)).optional().default([]),
233
+ outcomes: z.array(zBlueprintOutcome).optional().default([]),
234
+ relatedBlueprintSlugs: z
235
+ .array(z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/))
236
+ .optional()
237
+ .default([]),
122
238
  });
123
239
  export const zBlueprintPublicView = z.object({
124
240
  id: z.string(),
@@ -126,8 +242,10 @@ export const zBlueprintPublicView = z.object({
126
242
  name: z.string(),
127
243
  description: z.string().nullable(),
128
244
  websiteMetadata: zWebsiteMetadata.nullable(),
245
+ pageContent: zBlueprintPageContent.nullable(),
129
246
  publisherId: z.string(),
130
- template: zBlueprintTemplate,
247
+ template: zSpecPublic,
248
+ replays: z.array(z.string()),
131
249
  });
132
250
  export const zRequiredCredential = z.object({
133
251
  name: z
@@ -178,110 +296,121 @@ export const zOAuthStartResult = z.object({
178
296
  sessionId: z.string(),
179
297
  state: z.string(),
180
298
  });
181
- export const zCredentialAuth = z.union([
299
+ export const zCredentialTransferInput = z.object({
300
+ targetVaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
301
+ mode: z.enum(["copy", "move"]).optional().default("copy"),
302
+ conflict: z.enum(["fail", "replace"]).optional().default("fail"),
303
+ });
304
+ export const zCredentialAuthPublic = z.union([
182
305
  z.object({
183
306
  type: z.literal("bearer"),
184
- token: z.string(),
185
307
  }),
186
308
  z.object({
187
309
  type: z.literal("oauth"),
188
- accessToken: z.string(),
189
310
  expiresAt: z.string().nullish(),
190
311
  refresh: z
191
312
  .object({
192
313
  clientId: z.string(),
193
- refreshToken: z.string(),
194
- clientSecret: z.string().optional(),
195
314
  tokenEndpoint: z.string().optional(),
196
315
  tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
197
316
  scope: z.string().optional(),
198
317
  resource: z.string().optional(),
199
318
  })
200
319
  .nullish(),
201
- profile: z
202
- .union([
203
- z.object({
204
- service: z.literal("github"),
205
- id: z.number(),
206
- login: z.string(),
207
- name: z.string().nullable(),
208
- }),
209
- z.object({
210
- service: z.literal("google_workspace"),
211
- sub: z.string(),
212
- email: z.string(),
213
- name: z.string().nullable(),
214
- hd: z.string().nullable(),
215
- }),
216
- ])
217
- .nullish(),
218
320
  }),
219
321
  z.object({
220
322
  type: z.literal("env"),
221
- value: z.string(),
222
323
  }),
223
324
  z.object({
224
325
  type: z.literal("basic"),
225
326
  username: z.string(),
226
- password: z.string(),
227
327
  }),
228
328
  z.object({
229
329
  type: z.literal("mcp_provider"),
230
330
  provider: z.enum(["composio"]),
231
331
  userId: z.string(),
232
- url: z.url(),
233
332
  }),
234
333
  ]);
235
- export const zCredentialAuthPublic = z.union([
334
+ export const zCredential = z.object({
335
+ id: z.string(),
336
+ vaultId: z.string(),
337
+ name: z.string(),
338
+ mcpId: z.string().nullable(),
339
+ provider: z.enum(["github", "google_workspace"]).nullable(),
340
+ label: z.string().nullable(),
341
+ keyPreview: z.string().nullable(),
342
+ auth: zCredentialAuthPublic,
343
+ createdAt: z.iso
344
+ .datetime()
345
+ .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))$/),
346
+ updatedAt: z.iso
347
+ .datetime()
348
+ .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))$/),
349
+ archivedAt: z.iso
350
+ .datetime()
351
+ .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
+ .nullable(),
353
+ });
354
+ export const zCredentialTransferResult = z.object({
355
+ target: zCredential,
356
+ sourceCredentialId: z.string(),
357
+ sourceArchived: z.boolean(),
358
+ replacedCredentialId: z.string().nullable(),
359
+ });
360
+ export const zCredentialAuth = z.union([
236
361
  z.object({
237
362
  type: z.literal("bearer"),
363
+ token: z.string(),
238
364
  }),
239
365
  z.object({
240
366
  type: z.literal("oauth"),
367
+ accessToken: z.string(),
241
368
  expiresAt: z.string().nullish(),
242
369
  refresh: z
243
370
  .object({
244
371
  clientId: z.string(),
372
+ refreshToken: z.string(),
373
+ clientSecret: z.string().optional(),
245
374
  tokenEndpoint: z.string().optional(),
246
375
  tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
247
376
  scope: z.string().optional(),
248
377
  resource: z.string().optional(),
249
378
  })
250
379
  .nullish(),
380
+ profile: z
381
+ .union([
382
+ z.object({
383
+ service: z.literal("github"),
384
+ id: z.number(),
385
+ login: z.string(),
386
+ name: z.string().nullable(),
387
+ }),
388
+ z.object({
389
+ service: z.literal("google_workspace"),
390
+ sub: z.string(),
391
+ email: z.string(),
392
+ name: z.string().nullable(),
393
+ hd: z.string().nullable(),
394
+ }),
395
+ ])
396
+ .nullish(),
251
397
  }),
252
398
  z.object({
253
399
  type: z.literal("env"),
400
+ value: z.string(),
254
401
  }),
255
402
  z.object({
256
403
  type: z.literal("basic"),
257
404
  username: z.string(),
405
+ password: z.string(),
258
406
  }),
259
407
  z.object({
260
408
  type: z.literal("mcp_provider"),
261
409
  provider: z.enum(["composio"]),
262
410
  userId: z.string(),
411
+ url: z.url(),
263
412
  }),
264
413
  ]);
265
- export const zCredential = z.object({
266
- id: z.string(),
267
- vaultId: z.string(),
268
- name: z.string(),
269
- mcpId: z.string().nullable(),
270
- provider: z.enum(["github", "google_workspace"]).nullable(),
271
- label: z.string().nullable(),
272
- keyPreview: z.string().nullable(),
273
- auth: zCredentialAuthPublic,
274
- createdAt: z.iso
275
- .datetime()
276
- .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
- updatedAt: z.iso
278
- .datetime()
279
- .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))$/),
280
- archivedAt: z.iso
281
- .datetime()
282
- .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))$/)
283
- .nullable(),
284
- });
285
414
  export const zVault = z.object({
286
415
  id: z.string(),
287
416
  name: z.string(),
@@ -305,6 +434,7 @@ export const zLinearMapping = z.object({
305
434
  renProjectId: z.string(),
306
435
  renProjectName: z.string().nullable(),
307
436
  linearProjectId: z.string().nullable(),
437
+ linearProjectName: z.string().nullable(),
308
438
  senderUserId: z.string(),
309
439
  projectAgentId: z.string().nullable(),
310
440
  isEnabled: z.boolean(),
@@ -416,6 +546,7 @@ export const zProjectEmailResponse = z.object({
416
546
  export const zSlackChannel = z.object({
417
547
  id: z.string(),
418
548
  name: z.string(),
549
+ isPrivate: z.boolean(),
419
550
  projectId: z.string().nullable(),
420
551
  fallbackSenderUserId: z.string().nullable(),
421
552
  projectName: z.string().nullable(),
@@ -443,6 +574,10 @@ export const zSlackStatus = z.object({
443
574
  hasInstallation: z.boolean(),
444
575
  installations: z.array(zSlackInstallationResponse),
445
576
  });
577
+ export const zSlackOnboardingResolveResult = z.object({
578
+ status: z.enum(["installed", "install_required", "conflict", "no_identity"]),
579
+ url: z.url().optional(),
580
+ });
446
581
  export const zSlackOAuthStartResult = z.object({
447
582
  url: z.url(),
448
583
  });
@@ -457,6 +592,7 @@ export const zWebhookTrigger = z.object({
457
592
  .object({
458
593
  channelId: z.string().optional(),
459
594
  linearProjectId: z.string().optional(),
595
+ linearProjectName: z.string().optional(),
460
596
  })
461
597
  .nullable(),
462
598
  secretHash: z.string().nullable(),
@@ -523,50 +659,27 @@ export const zTopologyShare = z.object({
523
659
  export const zTopology = z.object({
524
660
  meta: z.object({
525
661
  org: z.string(),
526
- orgId: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
527
- ownerUserId: z
528
- .string()
529
- .regex(/^[a-z]+_[A-Za-z0-9]+$/)
530
- .optional(),
531
- specVersion: z.string().optional(),
532
- snapshotDate: z.string().optional(),
533
- notes: z.string().optional(),
534
662
  }),
535
663
  agents: z.array(z.object({
536
664
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
537
665
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
538
666
  name: z.string(),
539
667
  model: z.string().optional(),
540
- scope: z.enum(["org", "user", "registry"]).optional(),
541
668
  icon: z.string().optional(),
542
- promptRef: z.string().optional(),
543
669
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
544
670
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
545
- notes: z.string().optional(),
546
671
  })),
547
672
  mcps: z
548
673
  .array(z.object({
549
674
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
550
675
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
551
676
  name: z.string(),
552
- registrySlug: z.string().optional(),
553
- remoteUrl: z.url().optional(),
554
- auth: z.enum(["oauth", "basic", "api_key", "none", "mcp_provider"]).optional(),
555
677
  credential: z
556
678
  .string()
557
679
  .regex(/^[a-z0-9][a-z0-9-]*$/)
558
680
  .optional(),
559
681
  icon: z.string().optional(),
560
682
  tags: z.array(z.string()).optional(),
561
- notes: z.string().optional(),
562
- }))
563
- .optional(),
564
- skills: z
565
- .array(z.object({
566
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
567
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
568
- source: z.enum(["registry", "org", "user"]).optional(),
569
- notes: z.string().optional(),
570
683
  }))
571
684
  .optional(),
572
685
  credentials: z
@@ -574,9 +687,7 @@ export const zTopology = z.object({
574
687
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
575
688
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
576
689
  provider: z.string(),
577
- authType: z.enum(["oauth", "basic", "api_key", "env", "mcp_provider"]).optional(),
578
690
  vault: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
579
- notes: z.string().optional(),
580
691
  }))
581
692
  .optional(),
582
693
  vaults: z
@@ -584,9 +695,7 @@ export const zTopology = z.object({
584
695
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
585
696
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
586
697
  name: z.string(),
587
- scope: z.enum(["org", "user", "registry"]),
588
698
  attachedPods: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
589
- notes: z.string().optional(),
590
699
  }))
591
700
  .optional(),
592
701
  fileStores: z
@@ -594,8 +703,6 @@ export const zTopology = z.object({
594
703
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
595
704
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
596
705
  name: z.string(),
597
- scope: z.enum(["org", "user", "registry"]),
598
- notes: z.string().optional(),
599
706
  }))
600
707
  .optional(),
601
708
  memoryStores: z
@@ -603,8 +710,6 @@ export const zTopology = z.object({
603
710
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
604
711
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
605
712
  name: z.string(),
606
- scope: z.enum(["org", "user", "registry"]),
607
- notes: z.string().optional(),
608
713
  }))
609
714
  .optional(),
610
715
  pods: z.array(z.object({
@@ -612,87 +717,26 @@ export const zTopology = z.object({
612
717
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
613
718
  name: z.string(),
614
719
  scope: z.enum(["org", "user", "registry"]).optional(),
615
- vaults: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
616
- notes: z.string().optional(),
617
720
  })),
618
721
  projects: z.array(z.object({
619
722
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
620
723
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
621
724
  name: z.string(),
622
725
  pod: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
623
- buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
624
- slackChannel: z.string().optional(),
625
- primaryAgent: z
626
- .string()
627
- .regex(/^[a-z0-9][a-z0-9-]*$/)
628
- .optional(),
629
- subAgents: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
630
- fileStores: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
631
- memoryStores: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
632
- restricted: z.boolean().optional(),
633
- requirements: z
726
+ agents: z
634
727
  .array(z.object({
635
- id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
636
- kind: z.enum([
637
- "agent_attached",
638
- "skill_attached",
639
- "mcp_wired",
640
- "credential_present",
641
- "trigger_configured",
642
- "slack_mapped",
643
- "file_store_attached",
644
- "memory_store_attached",
645
- "vault_attached",
646
- "capability",
647
- "other",
648
- ]),
649
- must: z.string(),
650
- agent: z
651
- .string()
652
- .regex(/^[a-z0-9][a-z0-9-]*$/)
653
- .optional(),
654
- mcp: z
655
- .string()
656
- .regex(/^[a-z0-9][a-z0-9-]*$/)
657
- .optional(),
658
- skill: z
659
- .string()
660
- .regex(/^[a-z0-9][a-z0-9-]*$/)
661
- .optional(),
662
- credential: z
663
- .string()
664
- .regex(/^[a-z0-9][a-z0-9-]*$/)
665
- .optional(),
666
- trigger: z
667
- .string()
668
- .regex(/^[a-z0-9][a-z0-9-]*$/)
669
- .optional(),
670
- vault: z
671
- .string()
672
- .regex(/^[a-z0-9][a-z0-9-]*$/)
673
- .optional(),
674
- store: z
675
- .string()
676
- .regex(/^[a-z0-9][a-z0-9-]*$/)
677
- .optional(),
678
- channel: z.string().optional(),
679
- blocking: z.boolean().optional(),
680
- reason: z.string().optional(),
681
- verify: z.string().optional(),
682
- blockedBy: z.string().optional(),
728
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
729
+ mode: z.enum(["subagent", "all"]),
683
730
  }))
684
731
  .optional(),
685
- notes: z.string().optional(),
732
+ fileStores: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
733
+ memoryStores: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
686
734
  })),
687
735
  slack: z
688
736
  .object({
689
737
  workspace: z.string().optional(),
690
- teamId: z.string().optional(),
691
- installationId: z.string().optional(),
692
- botUserId: z.string().optional(),
693
738
  channels: z.array(z.object({
694
739
  name: z.string(),
695
- id: z.string().optional(),
696
740
  project: z
697
741
  .string()
698
742
  .regex(/^[a-z0-9][a-z0-9-]*$/)
@@ -702,10 +746,6 @@ export const zTopology = z.object({
702
746
  .optional(),
703
747
  github: z
704
748
  .object({
705
- installationId: z
706
- .string()
707
- .regex(/^[a-z]+_[A-Za-z0-9]+$/)
708
- .optional(),
709
749
  repos: z.array(z.object({
710
750
  name: z.string(),
711
751
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
@@ -719,14 +759,7 @@ export const zTopology = z.object({
719
759
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
720
760
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
721
761
  schedule: z.string(),
722
- timezone: z.string().optional(),
723
- until: z.iso
724
- .datetime()
725
- .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))$/)
726
- .optional(),
727
762
  inputMessage: z.string(),
728
- enabled: z.boolean().optional(),
729
- notes: z.string().optional(),
730
763
  }))
731
764
  .optional(),
732
765
  emails: z
@@ -766,6 +799,7 @@ export const zSkillVersion = z.object({
766
799
  ]),
767
800
  requiredCredentials: z.array(zRequiredCredential),
768
801
  releaseNotes: z.string().nullable(),
802
+ contentHash: z.string().nullable(),
769
803
  });
770
804
  export const zSkill = z.object({
771
805
  id: z.string(),
@@ -952,6 +986,32 @@ export const zOpencodeSession = z.object({
952
986
  .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))$/)
953
987
  .nullable(),
954
988
  });
989
+ export const zSessionCreateStatus = z.union([
990
+ z.object({
991
+ status: z.literal("pending"),
992
+ phase: z.enum([
993
+ "waiting-sandbox",
994
+ "creating-session",
995
+ "loading",
996
+ "resuming",
997
+ "provisioning",
998
+ "bootstrapping",
999
+ "finalizing",
1000
+ ]),
1001
+ }),
1002
+ z.object({
1003
+ status: z.literal("ready"),
1004
+ sessionId: z.string(),
1005
+ }),
1006
+ z.object({
1007
+ status: z.literal("failed"),
1008
+ reason: z.string(),
1009
+ }),
1010
+ ]);
1011
+ export const zSessionCreateJob = z.object({
1012
+ jobId: z.string().regex(/^sjob_[0-9A-HJKMNP-TV-Z]{26}$/),
1013
+ status: z.literal("pending"),
1014
+ });
955
1015
  export const zReplay = z.object({
956
1016
  id: z.string(),
957
1017
  orgId: z.string(),
@@ -986,6 +1046,7 @@ export const zPublisher = z.object({
986
1046
  avatar: z.string().nullable(),
987
1047
  url: z.string().nullable(),
988
1048
  isVerified: z.boolean(),
1049
+ links: z.array(zPublisherLink),
989
1050
  createdAt: z.iso
990
1051
  .datetime()
991
1052
  .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))$/),
@@ -1000,6 +1061,29 @@ export const zPublisher = z.object({
1000
1061
  export const zPublisherMe = z.object({
1001
1062
  org: zPublisher.nullable(),
1002
1063
  });
1064
+ export const zProjectMcp = z.object({
1065
+ id: z.string(),
1066
+ projectId: z.string(),
1067
+ mcpId: z.string(),
1068
+ createdAt: z.iso
1069
+ .datetime()
1070
+ .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))$/),
1071
+ updatedAt: z.iso
1072
+ .datetime()
1073
+ .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))$/),
1074
+ });
1075
+ export const zProjectSkill = z.object({
1076
+ id: z.string(),
1077
+ projectId: z.string(),
1078
+ skillId: z.string(),
1079
+ skillVersionId: z.string().nullable(),
1080
+ createdAt: z.iso
1081
+ .datetime()
1082
+ .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))$/),
1083
+ updatedAt: z.iso
1084
+ .datetime()
1085
+ .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))$/),
1086
+ });
1003
1087
  export const zProjectMemoryStore = z.object({
1004
1088
  id: z.string(),
1005
1089
  projectId: z.string(),
@@ -1027,7 +1111,7 @@ export const zProjectAgent = z.object({
1027
1111
  projectId: z.string(),
1028
1112
  agentId: z.string(),
1029
1113
  agentVersionId: z.string().nullable(),
1030
- type: z.enum(["primary", "subagent", "all"]),
1114
+ mode: z.enum(["subagent", "all"]),
1031
1115
  createdAt: z.iso
1032
1116
  .datetime()
1033
1117
  .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))$/),
@@ -1050,8 +1134,11 @@ export const zProject = z.object({
1050
1134
  name: z.string(),
1051
1135
  description: z.string().nullable(),
1052
1136
  slug: z.string(),
1137
+ defaultModel: z.string().nullable(),
1138
+ instructions: z.string(),
1053
1139
  permission: zPermissionConfig,
1054
1140
  gitRepos: z.array(zProjectGitRepo),
1141
+ references: zProjectReferences,
1055
1142
  createdAt: z.iso
1056
1143
  .datetime()
1057
1144
  .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))$/),
@@ -1139,6 +1226,8 @@ export const zPod = z.object({
1139
1226
  description: z.string().nullable(),
1140
1227
  isPrivate: z.boolean(),
1141
1228
  isDefault: z.boolean(),
1229
+ defaultModel: z.string().nullable(),
1230
+ instructions: z.string(),
1142
1231
  environmentId: z.string().nullable(),
1143
1232
  orgId: z.string(),
1144
1233
  userId: z.string().nullable(),
@@ -1166,6 +1255,7 @@ export const zPat = z.object({
1166
1255
  organizationId: z.string(),
1167
1256
  name: z.string(),
1168
1257
  tokenPrefix: z.string(),
1258
+ role: z.enum(["readonly", "member", "admin"]),
1169
1259
  scopes: z.array(z.string()),
1170
1260
  lastUsedAt: z.iso
1171
1261
  .datetime()
@@ -1186,6 +1276,16 @@ export const zPat = z.object({
1186
1276
  .datetime()
1187
1277
  .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))$/),
1188
1278
  });
1279
+ export const zOrganizationLogoUpload = z.object({
1280
+ url: z.url(),
1281
+ });
1282
+ export const zOrgSettings = z.object({
1283
+ id: z.string(),
1284
+ name: z.string(),
1285
+ slug: z.string(),
1286
+ defaultModel: z.string().nullable(),
1287
+ instructions: z.string(),
1288
+ });
1189
1289
  export const zOnboardingSetupPersonalOrg = z.object({
1190
1290
  organizationId: z.string(),
1191
1291
  alreadyExisted: z.boolean(),
@@ -1203,6 +1303,7 @@ export const zModelEntry = z.object({
1203
1303
  key: z.string(),
1204
1304
  name: z.string(),
1205
1305
  description: z.string(),
1306
+ modelID: z.string(),
1206
1307
  size: z.enum(["large", "medium", "small"]).optional(),
1207
1308
  pricing: zModelPricing.optional(),
1208
1309
  });
@@ -1243,6 +1344,16 @@ export const zMemoryStore = z.object({
1243
1344
  .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))$/)
1244
1345
  .nullable(),
1245
1346
  });
1347
+ export const zOnboardingComplete = z.object({
1348
+ onboarding: z.object({
1349
+ organization: z.boolean(),
1350
+ member: z.boolean(),
1351
+ }),
1352
+ });
1353
+ export const zMemberPersona = z.enum(["engineering", "product", "sales", "marketing", "support", "general"]);
1354
+ export const zMemberPersonaUpdate = z.object({
1355
+ persona: zMemberPersona,
1356
+ });
1246
1357
  export const zMe = z.object({
1247
1358
  user: z.object({
1248
1359
  id: z.string(),
@@ -1259,7 +1370,11 @@ export const zMe = z.object({
1259
1370
  })
1260
1371
  .nullable(),
1261
1372
  role: z.string().nullable(),
1262
- scopes: z.array(z.string()),
1373
+ persona: zMemberPersona.nullable(),
1374
+ onboarding: z.object({
1375
+ organization: z.boolean(),
1376
+ member: z.boolean(),
1377
+ }),
1263
1378
  method: z.enum(["session", "pat", "sandbox"]),
1264
1379
  });
1265
1380
  export const zOAuthSessionStatus = z.object({
@@ -1528,16 +1643,85 @@ export const zDashboardResponse = z.object({
1528
1643
  })),
1529
1644
  period: z.enum(["7d", "30d", "90d"]),
1530
1645
  });
1646
+ export const zUsageGroup = z.object({
1647
+ key: z.string(),
1648
+ label: z.string(),
1649
+ credits: z.string(),
1650
+ amountCents: z.int().gte(-9007199254740991).lte(9007199254740991),
1651
+ eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
1652
+ });
1653
+ export const zUsageDailyPoint = z.object({
1654
+ date: z.string(),
1655
+ credits: z.string(),
1656
+ });
1657
+ export const zUsageBreakdownItem = z.object({
1658
+ source: z.string(),
1659
+ operation: z.string(),
1660
+ credits: z.string(),
1661
+ eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
1662
+ });
1663
+ export const zUsage = z.object({
1664
+ credits: z.string(),
1665
+ amountCents: z.int().gte(-9007199254740991).lte(9007199254740991),
1666
+ eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
1667
+ from: z.string().nullable(),
1668
+ through: z.string(),
1669
+ breakdown: z.array(zUsageBreakdownItem),
1670
+ daily: z.array(zUsageDailyPoint),
1671
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).nullable(),
1672
+ groups: z.array(zUsageGroup),
1673
+ });
1674
+ export const zBlueprintInstallProjectTarget = z.union([
1675
+ z.object({
1676
+ blueprintProjectSlug: z.string().min(1),
1677
+ mode: z.literal("create"),
1678
+ name: z.string().min(1).max(256).optional(),
1679
+ }),
1680
+ z.object({
1681
+ blueprintProjectSlug: z.string().min(1),
1682
+ mode: z.literal("existing"),
1683
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1684
+ }),
1685
+ ]);
1686
+ export const zBlueprintInstallInput = z.object({
1687
+ source: z.string().min(1),
1688
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
1689
+ projectTargets: z.array(zBlueprintInstallProjectTarget).optional(),
1690
+ });
1691
+ export const zBlueprintInstallProjectMapping = z.object({
1692
+ blueprintProjectSlug: z.string(),
1693
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
1694
+ });
1695
+ export const zBlueprintInstallRequirement = z.object({
1696
+ kind: z.enum(["credential", "channel", "capability", "other"]),
1697
+ message: z.string(),
1698
+ project: z.string().optional(),
1699
+ credential: z.string().optional(),
1700
+ });
1531
1701
  export const zBlueprintInstallReport = z.object({
1532
- projects: z.array(z.string()),
1533
1702
  agents: z.array(z.string()),
1534
1703
  skills: z.array(z.string()),
1535
1704
  mcps: z.array(z.string()),
1536
1705
  skipped: z.array(z.object({
1537
- kind: z.enum(["skill", "agent", "mcp"]),
1706
+ kind: z.enum(["skill", "agent", "mcp", "project", "trigger", "environment"]),
1538
1707
  sourceId: z.string(),
1539
1708
  reason: z.string(),
1540
1709
  })),
1710
+ requirements: z.array(zBlueprintInstallRequirement),
1711
+ projectMappings: z.array(zBlueprintInstallProjectMapping),
1712
+ initialPrompt: z
1713
+ .object({
1714
+ prompt: z.string(),
1715
+ projectId: z
1716
+ .string()
1717
+ .regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/)
1718
+ .optional(),
1719
+ agentId: z
1720
+ .string()
1721
+ .regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
1722
+ .optional(),
1723
+ })
1724
+ .optional(),
1541
1725
  });
1542
1726
  export const zBlueprintSelection = z.object({
1543
1727
  projectIds: z.array(z.string()).optional().default([]),
@@ -1547,6 +1731,147 @@ export const zBlueprintSelection = z.object({
1547
1731
  replayIds: z.array(z.string()).optional().default([]),
1548
1732
  cronTriggerIds: z.array(z.string()).optional().default([]),
1549
1733
  });
1734
+ export const zSpecEnvironmentDef = z.object({
1735
+ networking: zNetworkingConfig,
1736
+ packages: zPackagesConfig,
1737
+ });
1738
+ export const zSpecRequirement = z.object({
1739
+ id: z.string(),
1740
+ kind: z.enum(["credential_present", "capability", "other"]),
1741
+ must: z.string(),
1742
+ agent: z
1743
+ .string()
1744
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
1745
+ .optional(),
1746
+ mcp: z
1747
+ .string()
1748
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
1749
+ .optional(),
1750
+ skill: z
1751
+ .string()
1752
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
1753
+ .optional(),
1754
+ verify: z.string().optional(),
1755
+ });
1756
+ export const zSpecEnvironmentEntry = z.object({
1757
+ ref: z
1758
+ .object({
1759
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
1760
+ })
1761
+ .optional(),
1762
+ def: zSpecEnvironmentDef.optional(),
1763
+ requirements: z.array(zSpecRequirement).optional(),
1764
+ notes: z.string().optional(),
1765
+ });
1766
+ export const zSpecCronTriggerEntry = z.object({
1767
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1768
+ ref: z
1769
+ .object({
1770
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
1771
+ })
1772
+ .optional(),
1773
+ project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1774
+ agent: z
1775
+ .string()
1776
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
1777
+ .optional(),
1778
+ schedule: z.string(),
1779
+ timezone: z.string().optional(),
1780
+ until: z.iso
1781
+ .datetime()
1782
+ .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))$/)
1783
+ .optional(),
1784
+ inputMessage: z.string(),
1785
+ enabled: z.boolean().optional(),
1786
+ requirements: z.array(zSpecRequirement).optional(),
1787
+ notes: z.string().optional(),
1788
+ });
1789
+ export const zSpecProjectDef = z.object({
1790
+ name: z.string(),
1791
+ description: z.string().optional(),
1792
+ instructions: z.string().optional(),
1793
+ references: zProjectReferences.optional(),
1794
+ agents: z.array(zSpecProjectAgent).optional(),
1795
+ skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
1796
+ mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
1797
+ permission: zPermissionConfig.optional(),
1798
+ buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
1799
+ });
1800
+ export const zSpecProjectEntry = z.object({
1801
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1802
+ ref: zSpecRef.optional(),
1803
+ def: zSpecProjectDef.optional(),
1804
+ channels: z.array(zSpecChannelBinding).optional(),
1805
+ requirements: z.array(zSpecRequirement).optional(),
1806
+ notes: z.string().optional(),
1807
+ });
1808
+ export const zSpecMcpDef = z.object({
1809
+ name: z.string(),
1810
+ registrySlug: z.string().optional(),
1811
+ remoteUrl: z.url().optional(),
1812
+ auth: z.enum(["oauth", "basic", "api_key", "none", "mcp_provider"]).optional(),
1813
+ });
1814
+ export const zSpecMcpEntry = z.object({
1815
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1816
+ ref: zSpecRef.optional(),
1817
+ def: zSpecMcpDef.optional(),
1818
+ requirements: z.array(zSpecRequirement).optional(),
1819
+ notes: z.string().optional(),
1820
+ });
1821
+ export const zSpecSkillDef = z.object({
1822
+ name: z.string(),
1823
+ registrySlug: z.string().optional(),
1824
+ purpose: z.string(),
1825
+ });
1826
+ export const zSpecSkillEntry = z.object({
1827
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1828
+ ref: zSpecRef.optional(),
1829
+ def: zSpecSkillDef.optional(),
1830
+ requirements: z.array(zSpecRequirement).optional(),
1831
+ notes: z.string().optional(),
1832
+ });
1833
+ export const zSpecAgentDef = z.object({
1834
+ name: z.string(),
1835
+ model: z.string().optional(),
1836
+ scope: z.enum(["org", "user", "registry"]).optional(),
1837
+ promptIntent: z.string().optional(),
1838
+ skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
1839
+ mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
1840
+ });
1841
+ export const zSpecAgentEntry = z.object({
1842
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1843
+ ref: zSpecRef.optional(),
1844
+ def: zSpecAgentDef.optional(),
1845
+ requirements: z.array(zSpecRequirement).optional(),
1846
+ notes: z.string().optional(),
1847
+ });
1848
+ export const zSpecBrief = z.object({
1849
+ goal: z.string(),
1850
+ scope: z.string().optional(),
1851
+ actors: z.array(z.string()).optional(),
1852
+ successCriteria: z.array(z.string()).optional(),
1853
+ constraints: z.array(z.string()).optional(),
1854
+ openQuestions: z.array(z.string()).optional(),
1855
+ });
1856
+ export const zSpecMeta = z.object({
1857
+ name: z.string(),
1858
+ description: z.string().optional(),
1859
+ snapshotDate: z.string().optional(),
1860
+ notes: z.string().optional(),
1861
+ });
1862
+ export const zSpec = z.object({
1863
+ schemaVersion: z.literal(2),
1864
+ meta: zSpecMeta,
1865
+ brief: zSpecBrief.optional(),
1866
+ instructions: z.string().optional(),
1867
+ initialPrompt: zSpecInitialPrompt.optional(),
1868
+ agents: z.array(zSpecAgentEntry),
1869
+ skills: z.array(zSpecSkillEntry),
1870
+ mcps: z.array(zSpecMcpEntry),
1871
+ projects: z.array(zSpecProjectEntry),
1872
+ triggers: z.array(zSpecCronTriggerEntry),
1873
+ environment: zSpecEnvironmentEntry.optional(),
1874
+ });
1550
1875
  export const zBlueprint = z.object({
1551
1876
  id: z.string(),
1552
1877
  slug: z.string(),
@@ -1555,7 +1880,9 @@ export const zBlueprint = z.object({
1555
1880
  orgId: z.string(),
1556
1881
  userId: z.string().nullable(),
1557
1882
  publisherId: z.string().nullable(),
1558
- template: zBlueprintTemplate,
1883
+ template: zSpec,
1884
+ replays: z.array(z.string()),
1885
+ pageContent: zBlueprintPageContent.nullable(),
1559
1886
  websiteMetadata: zWebsiteMetadata.nullable(),
1560
1887
  createdAt: z.iso
1561
1888
  .datetime()
@@ -1656,15 +1983,11 @@ export const zAgent = z.object({
1656
1983
  tags: z.array(z.string()).optional().default([]),
1657
1984
  latestVersion: zAgentLatestVersion.nullish(),
1658
1985
  });
1659
- /**
1660
- * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
1661
- */
1662
- export const zScopeQuery = z.enum(["user"]);
1663
1986
  export const zAgentListQuery = z.object({
1664
- scope: z.enum(["user"]).optional(),
1665
- limit: z.number().gte(1).lte(1000).optional(),
1666
- offset: z.number().gte(0).optional(),
1987
+ limit: z.int().gte(1).lte(1000).optional(),
1988
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
1667
1989
  includeDeprecated: z.boolean().optional(),
1990
+ visibility: z.enum(["private", "org"]).optional(),
1668
1991
  });
1669
1992
  /**
1670
1993
  * List of agents
@@ -1674,6 +1997,7 @@ export const zAgentCreateBody = z.object({
1674
1997
  name: z.string().min(1).max(256),
1675
1998
  icon: z.string().nullish().default(null),
1676
1999
  tags: z.array(z.string()).optional(),
2000
+ visibility: z.enum(["private", "org"]).optional().default("org"),
1677
2001
  version: z
1678
2002
  .union([z.string(), z.enum(["major", "minor", "patch"])])
1679
2003
  .optional()
@@ -1697,9 +2021,6 @@ export const zAgentCreateBody = z.object({
1697
2021
  .default([]),
1698
2022
  releaseNotes: z.string().max(4096).optional(),
1699
2023
  });
1700
- export const zAgentCreateQuery = z.object({
1701
- scope: z.enum(["user"]).optional(),
1702
- });
1703
2024
  /**
1704
2025
  * Created agent
1705
2026
  */
@@ -1713,9 +2034,6 @@ export const zAgentSearchBody = z.object({
1713
2034
  .default(["user", "org", "registry"]),
1714
2035
  limit: z.int().gte(1).lte(50).optional().default(20),
1715
2036
  });
1716
- export const zAgentSearchQuery = z.object({
1717
- scope: z.enum(["user"]).optional(),
1718
- });
1719
2037
  /**
1720
2038
  * Matching agents
1721
2039
  */
@@ -1727,9 +2045,6 @@ export const zAgentGetBySlugPath = z.object({
1727
2045
  .max(128)
1728
2046
  .regex(/^[a-z0-9-]+$/),
1729
2047
  });
1730
- export const zAgentGetBySlugQuery = z.object({
1731
- scope: z.enum(["user"]).optional(),
1732
- });
1733
2048
  /**
1734
2049
  * Agent details
1735
2050
  */
@@ -1737,9 +2052,6 @@ export const zAgentGetBySlugResponse = zAgent;
1737
2052
  export const zAgentGetPath = z.object({
1738
2053
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1739
2054
  });
1740
- export const zAgentGetQuery = z.object({
1741
- scope: z.enum(["user"]).optional(),
1742
- });
1743
2055
  /**
1744
2056
  * Agent details
1745
2057
  */
@@ -1753,9 +2065,6 @@ export const zAgentUpdateBody = z.object({
1753
2065
  export const zAgentUpdatePath = z.object({
1754
2066
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1755
2067
  });
1756
- export const zAgentUpdateQuery = z.object({
1757
- scope: z.enum(["user"]).optional(),
1758
- });
1759
2068
  /**
1760
2069
  * Updated agent
1761
2070
  */
@@ -1763,9 +2072,6 @@ export const zAgentUpdateResponse = zAgent;
1763
2072
  export const zAgentArchivePath = z.object({
1764
2073
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1765
2074
  });
1766
- export const zAgentArchiveQuery = z.object({
1767
- scope: z.enum(["user"]).optional(),
1768
- });
1769
2075
  /**
1770
2076
  * Archived agent
1771
2077
  */
@@ -1773,22 +2079,23 @@ export const zAgentArchiveResponse = zAgent;
1773
2079
  export const zAgentPublishPath = z.object({
1774
2080
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1775
2081
  });
1776
- export const zAgentPublishQuery = z.object({
1777
- scope: z.enum(["user"]).optional(),
1778
- });
1779
2082
  /**
1780
2083
  * Published agent
1781
2084
  */
1782
2085
  export const zAgentPublishResponse = zAgent;
2086
+ export const zAgentPromotePath = z.object({
2087
+ id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2088
+ });
2089
+ /**
2090
+ * Promoted agent
2091
+ */
2092
+ export const zAgentPromoteResponse = zAgent;
1783
2093
  export const zAgentDeprecateBody = z.object({
1784
2094
  message: z.string().nullish(),
1785
2095
  });
1786
2096
  export const zAgentDeprecatePath = z.object({
1787
2097
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1788
2098
  });
1789
- export const zAgentDeprecateQuery = z.object({
1790
- scope: z.enum(["user"]).optional(),
1791
- });
1792
2099
  /**
1793
2100
  * Deprecated agent
1794
2101
  */
@@ -1796,9 +2103,6 @@ export const zAgentDeprecateResponse = zAgent;
1796
2103
  export const zAgentUndeprecatePath = z.object({
1797
2104
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1798
2105
  });
1799
- export const zAgentUndeprecateQuery = z.object({
1800
- scope: z.enum(["user"]).optional(),
1801
- });
1802
2106
  /**
1803
2107
  * Undeprecated agent
1804
2108
  */
@@ -1807,9 +2111,8 @@ export const zAgentVersionListPath = z.object({
1807
2111
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1808
2112
  });
1809
2113
  export const zAgentVersionListQuery = z.object({
1810
- scope: z.enum(["user"]).optional(),
1811
- limit: z.number().gte(1).lte(1000).optional(),
1812
- offset: z.number().gte(0).optional(),
2114
+ limit: z.int().gte(1).lte(1000).optional(),
2115
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
1813
2116
  includeDeprecated: z.boolean().optional(),
1814
2117
  });
1815
2118
  /**
@@ -1843,9 +2146,6 @@ export const zAgentVersionCreateBody = z.object({
1843
2146
  export const zAgentVersionCreatePath = z.object({
1844
2147
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1845
2148
  });
1846
- export const zAgentVersionCreateQuery = z.object({
1847
- scope: z.enum(["user"]).optional(),
1848
- });
1849
2149
  /**
1850
2150
  * Created agent version
1851
2151
  */
@@ -1854,9 +2154,6 @@ export const zAgentVersionGetPath = z.object({
1854
2154
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1855
2155
  version: z.string().min(1).max(32),
1856
2156
  });
1857
- export const zAgentVersionGetQuery = z.object({
1858
- scope: z.enum(["user"]).optional(),
1859
- });
1860
2157
  /**
1861
2158
  * Agent version details
1862
2159
  */
@@ -1865,18 +2162,15 @@ export const zAgentVersionArchivePath = z.object({
1865
2162
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
1866
2163
  version: z.string().min(1).max(32),
1867
2164
  });
1868
- export const zAgentVersionArchiveQuery = z.object({
1869
- scope: z.enum(["user"]).optional(),
1870
- });
1871
2165
  /**
1872
2166
  * Archived agent version
1873
2167
  */
1874
2168
  export const zAgentVersionArchiveResponse = zAgentVersion;
1875
2169
  export const zBlueprintListQuery = z.object({
1876
- scope: z.enum(["user"]).optional(),
1877
- limit: z.number().gte(1).lte(1000).optional(),
1878
- offset: z.number().gte(0).optional(),
2170
+ limit: z.int().gte(1).lte(1000).optional(),
2171
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
1879
2172
  includeDeprecated: z.boolean().optional(),
2173
+ visibility: z.enum(["private", "org"]).optional(),
1880
2174
  });
1881
2175
  /**
1882
2176
  * List of blueprints
@@ -1886,22 +2180,27 @@ export const zBlueprintCreateBody = z.object({
1886
2180
  name: z.string().min(1).max(256),
1887
2181
  description: z.string().optional().default(""),
1888
2182
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
2183
+ pageContent: zBlueprintPageContent.nullish().default(null),
2184
+ instructions: z.string().optional(),
2185
+ initialPrompt: zSpecInitialPrompt.optional(),
1889
2186
  selection: zBlueprintSelection,
1890
- });
1891
- export const zBlueprintCreateQuery = z.object({
1892
- scope: z.enum(["user"]).optional(),
2187
+ visibility: z.enum(["private", "org"]).optional().default("org"),
1893
2188
  });
1894
2189
  /**
1895
2190
  * Created blueprint
1896
2191
  */
1897
2192
  export const zBlueprintCreateResponse = zBlueprint;
1898
- export const zBlueprintInstallBody = z.object({
1899
- source: z.string().min(1),
1900
- podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
1901
- });
1902
- export const zBlueprintInstallQuery = z.object({
1903
- scope: z.enum(["user"]).optional(),
2193
+ export const zBlueprintPushBody = z.object({
2194
+ id: z.string().optional(),
2195
+ name: z.string().min(1).max(256).optional(),
2196
+ description: z.string().optional(),
2197
+ spec: zSpec,
1904
2198
  });
2199
+ /**
2200
+ * Upserted blueprint
2201
+ */
2202
+ export const zBlueprintPushResponse = zBlueprint;
2203
+ export const zBlueprintInstallBody = zBlueprintInstallInput;
1905
2204
  /**
1906
2205
  * Install report
1907
2206
  */
@@ -1909,9 +2208,6 @@ export const zBlueprintInstallResponse = zBlueprintInstallReport;
1909
2208
  export const zBlueprintGetPath = z.object({
1910
2209
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1911
2210
  });
1912
- export const zBlueprintGetQuery = z.object({
1913
- scope: z.enum(["user"]).optional(),
1914
- });
1915
2211
  /**
1916
2212
  * Blueprint details
1917
2213
  */
@@ -1920,14 +2216,14 @@ export const zBlueprintUpdateBody = z.object({
1920
2216
  name: z.string().min(1).max(256).optional(),
1921
2217
  description: z.string().optional(),
1922
2218
  websiteMetadata: zWebsiteMetadata.nullish(),
2219
+ pageContent: zBlueprintPageContent.nullish(),
2220
+ instructions: z.string().optional(),
2221
+ initialPrompt: zSpecInitialPrompt.nullish(),
1923
2222
  selection: zBlueprintSelection.optional(),
1924
2223
  });
1925
2224
  export const zBlueprintUpdatePath = z.object({
1926
2225
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1927
2226
  });
1928
- export const zBlueprintUpdateQuery = z.object({
1929
- scope: z.enum(["user"]).optional(),
1930
- });
1931
2227
  /**
1932
2228
  * Updated blueprint
1933
2229
  */
@@ -1935,9 +2231,6 @@ export const zBlueprintUpdateResponse = zBlueprint;
1935
2231
  export const zBlueprintPublishPath = z.object({
1936
2232
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1937
2233
  });
1938
- export const zBlueprintPublishQuery = z.object({
1939
- scope: z.enum(["user"]).optional(),
1940
- });
1941
2234
  /**
1942
2235
  * Published blueprint
1943
2236
  */
@@ -1948,9 +2241,6 @@ export const zBlueprintDeprecateBody = z.object({
1948
2241
  export const zBlueprintDeprecatePath = z.object({
1949
2242
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1950
2243
  });
1951
- export const zBlueprintDeprecateQuery = z.object({
1952
- scope: z.enum(["user"]).optional(),
1953
- });
1954
2244
  /**
1955
2245
  * Deprecated blueprint
1956
2246
  */
@@ -1958,9 +2248,6 @@ export const zBlueprintDeprecateResponse = zBlueprint;
1958
2248
  export const zBlueprintUndeprecatePath = z.object({
1959
2249
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1960
2250
  });
1961
- export const zBlueprintUndeprecateQuery = z.object({
1962
- scope: z.enum(["user"]).optional(),
1963
- });
1964
2251
  /**
1965
2252
  * Undeprecated blueprint
1966
2253
  */
@@ -1968,9 +2255,6 @@ export const zBlueprintUndeprecateResponse = zBlueprint;
1968
2255
  export const zBlueprintArchivePath = z.object({
1969
2256
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
1970
2257
  });
1971
- export const zBlueprintArchiveQuery = z.object({
1972
- scope: z.enum(["user"]).optional(),
1973
- });
1974
2258
  /**
1975
2259
  * Archived blueprint
1976
2260
  */
@@ -1979,13 +2263,33 @@ export const zBlueprintArchiveResponse = zBlueprint;
1979
2263
  * Billing summary
1980
2264
  */
1981
2265
  export const zBillingGetResponse = z.object({
1982
- plan: z.string(),
1983
2266
  creditsBalance: z.string(),
1984
2267
  balanceCents: z.number(),
1985
2268
  consumedCredits: z.string(),
1986
2269
  consumedAmountCents: z.number(),
1987
2270
  grantedCredits: z.string(),
2271
+ freeGrantCredits: z.string(),
2272
+ plan: z.enum(["free", "plan_100", "plan_200"]),
2273
+ planStatus: z.string().nullable(),
2274
+ renewsAt: z.string().nullable(),
2275
+ pendingPlan: z.enum(["plan_100", "plan_200"]).nullable(),
2276
+ });
2277
+ export const zBillingUsageQuery = z.object({
2278
+ groupBy: z
2279
+ .enum(["user", "member", "agent", "model", "session", "project", "pod", "source"])
2280
+ .optional()
2281
+ .default("source"),
2282
+ start: z.iso
2283
+ .datetime()
2284
+ .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))$/),
2285
+ end: z.iso
2286
+ .datetime()
2287
+ .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))$/),
1988
2288
  });
2289
+ /**
2290
+ * Organization credit usage
2291
+ */
2292
+ export const zBillingUsageResponse = zUsage;
1989
2293
  export const zBillingInvoicesQuery = z.object({
1990
2294
  page: z.int().gte(1).lte(9007199254740991).optional().default(1),
1991
2295
  perPage: z.int().gte(1).lte(100).optional().default(10),
@@ -2009,17 +2313,7 @@ export const zBillingInvoicesResponse = z.object({
2009
2313
  totalPages: z.number(),
2010
2314
  totalCount: z.number(),
2011
2315
  }),
2012
- });
2013
- export const zBillingDailyUsageQuery = z.object({
2014
- days: z.int().gte(1).lte(90).optional().default(30),
2015
- });
2016
- /**
2017
- * Daily usage
2018
- */
2019
- export const zBillingDailyUsageResponse = z.array(z.object({
2020
- date: z.string(),
2021
- creditsUsed: z.string(),
2022
- }));
2316
+ });
2023
2317
  export const zBillingInvoicePaymentUrlQuery = z.object({
2024
2318
  id: z.string().min(1),
2025
2319
  });
@@ -2029,16 +2323,49 @@ export const zBillingInvoicePaymentUrlQuery = z.object({
2029
2323
  export const zBillingInvoicePaymentUrlResponse = z.object({
2030
2324
  url: z.string(),
2031
2325
  });
2032
- export const zBillingUpdatePlanBody = z.object({
2033
- newPlan: z.enum(["free", "plus", "pro"]),
2326
+ /**
2327
+ * Subscription plans
2328
+ */
2329
+ export const zBillingPlansResponse = z.array(z.object({
2330
+ key: z.enum(["plan_100", "plan_200"]),
2331
+ priceCents: z.number(),
2332
+ creditsPerCycle: z.number(),
2333
+ name: z.string(),
2334
+ description: z.string().nullable(),
2335
+ tagline: z.string().nullable(),
2336
+ features: z.array(z.string()),
2337
+ badge: z.string().nullable(),
2338
+ sortOrder: z.number(),
2339
+ }));
2340
+ export const zBillingSubscribeBody = z.object({
2341
+ plan: z.enum(["plan_100", "plan_200"]),
2342
+ });
2343
+ /**
2344
+ * Checkout URL
2345
+ */
2346
+ export const zBillingSubscribeResponse = z.object({
2347
+ checkoutUrl: z.string(),
2348
+ });
2349
+ /**
2350
+ * Portal URL
2351
+ */
2352
+ export const zBillingPortalResponse = z.object({
2353
+ url: z.string(),
2354
+ });
2355
+ export const zBillingChangePlanBody = z.object({
2356
+ plan: z.enum(["plan_100", "plan_200"]),
2357
+ });
2358
+ /**
2359
+ * Plan change started; checkoutUrl is set when the customer must authenticate the charge
2360
+ */
2361
+ export const zBillingChangePlanResponse = z.object({
2362
+ checkoutUrl: z.string(),
2034
2363
  });
2035
2364
  /**
2036
- * Plan updated
2365
+ * Cancellation scheduled
2037
2366
  */
2038
- export const zBillingUpdatePlanResponse = z.object({
2039
- status: z.string(),
2040
- plan: z.string(),
2041
- effective: z.string(),
2367
+ export const zBillingCancelResponse = z.object({
2368
+ ok: z.boolean(),
2042
2369
  });
2043
2370
  export const zDashboardGetQuery = z.object({
2044
2371
  period: z.enum(["7d", "30d", "90d"]).optional().default("30d"),
@@ -2052,12 +2379,12 @@ export const zDashboardGetQuery = z.object({
2052
2379
  */
2053
2380
  export const zDashboardGetResponse = zDashboardResponse;
2054
2381
  export const zEnvironmentListQuery = z.object({
2055
- scope: z.enum(["user"]).optional(),
2056
2382
  orgId: z.string().optional(),
2057
- limit: z.number().gte(1).lte(1000).optional(),
2058
- offset: z.number().gte(0).optional(),
2383
+ limit: z.int().gte(1).lte(1000).optional(),
2384
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2059
2385
  includeDeprecated: z.boolean().optional(),
2060
2386
  userId: z.string().nullish(),
2387
+ visibility: z.enum(["private", "org"]).optional(),
2061
2388
  });
2062
2389
  /**
2063
2390
  * List of environments
@@ -2069,9 +2396,7 @@ export const zEnvironmentCreateBody = z.object({
2069
2396
  description: z.string().optional().default(""),
2070
2397
  hostingType: z.enum(["cloud"]).optional().default("cloud"),
2071
2398
  packages: zPackagesConfig.optional(),
2072
- });
2073
- export const zEnvironmentCreateQuery = z.object({
2074
- scope: z.enum(["user"]).optional(),
2399
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2075
2400
  });
2076
2401
  /**
2077
2402
  * Created environment
@@ -2080,9 +2405,6 @@ export const zEnvironmentCreateResponse = zEnvironment;
2080
2405
  export const zEnvironmentDeletePath = z.object({
2081
2406
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
2082
2407
  });
2083
- export const zEnvironmentDeleteQuery = z.object({
2084
- scope: z.enum(["user"]).optional(),
2085
- });
2086
2408
  /**
2087
2409
  * Deleted environment
2088
2410
  */
@@ -2090,9 +2412,6 @@ export const zEnvironmentDeleteResponse = zEnvironment;
2090
2412
  export const zEnvironmentGetPath = z.object({
2091
2413
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
2092
2414
  });
2093
- export const zEnvironmentGetQuery = z.object({
2094
- scope: z.enum(["user"]).optional(),
2095
- });
2096
2415
  /**
2097
2416
  * Environment details
2098
2417
  */
@@ -2106,9 +2425,6 @@ export const zEnvironmentUpdateBody = z.object({
2106
2425
  export const zEnvironmentUpdatePath = z.object({
2107
2426
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
2108
2427
  });
2109
- export const zEnvironmentUpdateQuery = z.object({
2110
- scope: z.enum(["user"]).optional(),
2111
- });
2112
2428
  /**
2113
2429
  * Updated environment
2114
2430
  */
@@ -2116,20 +2432,17 @@ export const zEnvironmentUpdateResponse = zEnvironment;
2116
2432
  export const zEnvironmentArchivePath = z.object({
2117
2433
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
2118
2434
  });
2119
- export const zEnvironmentArchiveQuery = z.object({
2120
- scope: z.enum(["user"]).optional(),
2121
- });
2122
2435
  /**
2123
2436
  * Archived environment
2124
2437
  */
2125
2438
  export const zEnvironmentArchiveResponse = zEnvironment;
2126
2439
  export const zFileStoreListQuery = z.object({
2127
- scope: z.enum(["user"]).optional(),
2128
2440
  orgId: z.string().optional(),
2129
- limit: z.number().gte(1).lte(1000).optional(),
2130
- offset: z.number().gte(0).optional(),
2441
+ limit: z.int().gte(1).lte(1000).optional(),
2442
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2131
2443
  includeDeprecated: z.boolean().optional(),
2132
2444
  userId: z.string().nullish(),
2445
+ visibility: z.enum(["private", "org"]).optional(),
2133
2446
  });
2134
2447
  /**
2135
2448
  * List of file stores
@@ -2139,9 +2452,7 @@ export const zFileStoreCreateBody = z.object({
2139
2452
  name: z.string().min(1).max(256),
2140
2453
  description: z.string().optional().default(""),
2141
2454
  isDefault: z.boolean().optional().default(false),
2142
- });
2143
- export const zFileStoreCreateQuery = z.object({
2144
- scope: z.enum(["user"]).optional(),
2455
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2145
2456
  });
2146
2457
  /**
2147
2458
  * Created file store
@@ -2150,9 +2461,6 @@ export const zFileStoreCreateResponse = zFileStore;
2150
2461
  export const zFileStoreGetPath = z.object({
2151
2462
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2152
2463
  });
2153
- export const zFileStoreGetQuery = z.object({
2154
- scope: z.enum(["user"]).optional(),
2155
- });
2156
2464
  /**
2157
2465
  * File store details
2158
2466
  */
@@ -2164,9 +2472,6 @@ export const zFileStoreUpdateBody = z.object({
2164
2472
  export const zFileStoreUpdatePath = z.object({
2165
2473
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2166
2474
  });
2167
- export const zFileStoreUpdateQuery = z.object({
2168
- scope: z.enum(["user"]).optional(),
2169
- });
2170
2475
  /**
2171
2476
  * Updated file store
2172
2477
  */
@@ -2174,9 +2479,6 @@ export const zFileStoreUpdateResponse = zFileStore;
2174
2479
  export const zFileStoreArchivePath = z.object({
2175
2480
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2176
2481
  });
2177
- export const zFileStoreArchiveQuery = z.object({
2178
- scope: z.enum(["user"]).optional(),
2179
- });
2180
2482
  /**
2181
2483
  * Archived file store
2182
2484
  */
@@ -2185,7 +2487,6 @@ export const zFileStoreFilesDeletePath = z.object({
2185
2487
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2186
2488
  });
2187
2489
  export const zFileStoreFilesDeleteQuery = z.object({
2188
- scope: z.enum(["user"]).optional(),
2189
2490
  path: z.string().min(1),
2190
2491
  });
2191
2492
  /**
@@ -2198,7 +2499,6 @@ export const zFileStoreFilesListPath = z.object({
2198
2499
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2199
2500
  });
2200
2501
  export const zFileStoreFilesListQuery = z.object({
2201
- scope: z.enum(["user"]).optional(),
2202
2502
  prefix: z.string().optional(),
2203
2503
  limit: z.int().gt(0).lte(1000).optional(),
2204
2504
  });
@@ -2210,7 +2510,6 @@ export const zFileStoreFilesPresignDownloadPath = z.object({
2210
2510
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2211
2511
  });
2212
2512
  export const zFileStoreFilesPresignDownloadQuery = z.object({
2213
- scope: z.enum(["user"]).optional(),
2214
2513
  path: z.string().min(1),
2215
2514
  expiresInSeconds: z.int().gt(0).lte(9007199254740991).optional(),
2216
2515
  });
@@ -2226,9 +2525,6 @@ export const zFileStoreFilesStartUploadBody = z.object({
2226
2525
  export const zFileStoreFilesStartUploadPath = z.object({
2227
2526
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2228
2527
  });
2229
- export const zFileStoreFilesStartUploadQuery = z.object({
2230
- scope: z.enum(["user"]).optional(),
2231
- });
2232
2528
  /**
2233
2529
  * Presigned PUT URL the browser uploads to directly
2234
2530
  */
@@ -2239,22 +2535,39 @@ export const zFileStoreFilesFinalizeUploadBody = z.object({
2239
2535
  export const zFileStoreFilesFinalizeUploadPath = z.object({
2240
2536
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2241
2537
  });
2242
- export const zFileStoreFilesFinalizeUploadQuery = z.object({
2243
- scope: z.enum(["user"]).optional(),
2244
- });
2245
2538
  /**
2246
2539
  * Finalized file info
2247
2540
  */
2248
2541
  export const zFileStoreFilesFinalizeUploadResponse = zFileStoreFile;
2249
- export const zGithubUninstallQuery = z.object({
2250
- scope: z.enum(["user"]).optional(),
2542
+ export const zInvitationPreviewPath = z.object({
2543
+ id: z.string().min(1).max(128),
2544
+ });
2545
+ /**
2546
+ * Presentation details and current state for an invitation link
2547
+ */
2548
+ export const zInvitationPreviewResponse = z.object({
2549
+ state: z.enum(["pending", "expired", "accepted", "unavailable", "invalid"]),
2550
+ organization: z
2551
+ .object({
2552
+ id: z.string(),
2553
+ name: z.string(),
2554
+ logo: z.string().nullable(),
2555
+ })
2556
+ .nullable(),
2557
+ inviter: z
2558
+ .object({
2559
+ name: z.string().nullable(),
2560
+ email: z
2561
+ .email()
2562
+ .regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/),
2563
+ })
2564
+ .nullable(),
2251
2565
  });
2252
2566
  /**
2253
2567
  * Removed
2254
2568
  */
2255
2569
  export const zGithubUninstallResponse = z.void();
2256
2570
  export const zGithubInstallQuery = z.object({
2257
- scope: z.enum(["user"]).optional(),
2258
2571
  returnTo: z.string().optional(),
2259
2572
  });
2260
2573
  /**
@@ -2262,30 +2575,20 @@ export const zGithubInstallQuery = z.object({
2262
2575
  */
2263
2576
  export const zGithubInstallResponse = zGithubOAuthStartResult;
2264
2577
  export const zGithubConnectQuery = z.object({
2265
- scope: z.enum(["user"]).optional(),
2266
2578
  returnTo: z.string().optional(),
2267
2579
  });
2268
2580
  /**
2269
2581
  * Authorization URL for the user to visit
2270
2582
  */
2271
2583
  export const zGithubConnectResponse = zGithubOAuthStartResult;
2272
- export const zGithubStatusQuery = z.object({
2273
- scope: z.enum(["user"]).optional(),
2274
- });
2275
2584
  /**
2276
2585
  * GitHub configuration status
2277
2586
  */
2278
2587
  export const zGithubStatusResponse = zGithubStatus;
2279
- export const zGithubReposQuery = z.object({
2280
- scope: z.enum(["user"]).optional(),
2281
- });
2282
2588
  /**
2283
2589
  * Repositories
2284
2590
  */
2285
2591
  export const zGithubReposResponse = z.array(zGithubRepo);
2286
- export const zGithubMappingsListQuery = z.object({
2287
- scope: z.enum(["user"]).optional(),
2288
- });
2289
2592
  /**
2290
2593
  * Repo mappings
2291
2594
  */
@@ -2294,7 +2597,6 @@ export const zGithubMappingUnsetPath = z.object({
2294
2597
  repoId: z.string().min(1),
2295
2598
  });
2296
2599
  export const zGithubMappingUnsetQuery = z.object({
2297
- scope: z.enum(["user"]).optional(),
2298
2600
  installationId: z.string().min(1),
2299
2601
  });
2300
2602
  /**
@@ -2312,23 +2614,14 @@ export const zGithubMappingSetBody = z.object({
2312
2614
  export const zGithubMappingSetPath = z.object({
2313
2615
  repoId: z.string().min(1),
2314
2616
  });
2315
- export const zGithubMappingSetQuery = z.object({
2316
- scope: z.enum(["user"]).optional(),
2317
- });
2318
2617
  /**
2319
2618
  * Mapped
2320
2619
  */
2321
2620
  export const zGithubMappingSetResponse = z.void();
2322
- export const zGoogleStatusQuery = z.object({
2323
- scope: z.enum(["user"]).optional(),
2324
- });
2325
2621
  /**
2326
2622
  * Google Workspace configuration status
2327
2623
  */
2328
2624
  export const zGoogleStatusResponse = zGoogleWorkspaceStatus;
2329
- export const zGoogleConfigDeleteQuery = z.object({
2330
- scope: z.enum(["user"]).optional(),
2331
- });
2332
2625
  /**
2333
2626
  * Removed
2334
2627
  */
@@ -2338,9 +2631,6 @@ export const zGoogleConfigSaveBody = z.object({
2338
2631
  clientSecret: z.string().min(1),
2339
2632
  scopes: z.array(z.string().min(1)).min(1).optional(),
2340
2633
  });
2341
- export const zGoogleConfigSaveQuery = z.object({
2342
- scope: z.enum(["user"]).optional(),
2343
- });
2344
2634
  /**
2345
2635
  * Updated Google Workspace configuration status
2346
2636
  */
@@ -2348,9 +2638,6 @@ export const zGoogleConfigSaveResponse = zGoogleWorkspaceStatus;
2348
2638
  export const zGoogleDisconnectPath = z.object({
2349
2639
  vaultId: z.string(),
2350
2640
  });
2351
- export const zGoogleDisconnectQuery = z.object({
2352
- scope: z.enum(["user"]).optional(),
2353
- });
2354
2641
  /**
2355
2642
  * Removed
2356
2643
  */
@@ -2359,7 +2646,6 @@ export const zGoogleConnectPath = z.object({
2359
2646
  vaultId: z.string(),
2360
2647
  });
2361
2648
  export const zGoogleConnectQuery = z.object({
2362
- scope: z.enum(["user"]).optional(),
2363
2649
  returnTo: z.string().optional(),
2364
2650
  });
2365
2651
  /**
@@ -2367,11 +2653,11 @@ export const zGoogleConnectQuery = z.object({
2367
2653
  */
2368
2654
  export const zGoogleConnectResponse = zGoogleWorkspaceOAuthStartResult;
2369
2655
  export const zMcpListQuery = z.object({
2370
- scope: z.enum(["user"]).optional(),
2371
- limit: z.number().gte(1).lte(1000).optional(),
2372
- offset: z.number().gte(0).optional(),
2656
+ limit: z.int().gte(1).lte(1000).optional(),
2657
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2373
2658
  includeDeprecated: z.boolean().optional(),
2374
2659
  sort: z.enum(["popular", "trending", "recent"]).optional(),
2660
+ visibility: z.enum(["private", "org"]).optional(),
2375
2661
  });
2376
2662
  /**
2377
2663
  * List of MCPs
@@ -2397,9 +2683,7 @@ export const zMcpCreateBody = z.object({
2397
2683
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional().default("none"),
2398
2684
  authConfig: zMcpAuthConfig.nullish().default(null),
2399
2685
  tags: z.array(z.string()).optional(),
2400
- });
2401
- export const zMcpCreateQuery = z.object({
2402
- scope: z.enum(["user"]).optional(),
2686
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2403
2687
  });
2404
2688
  /**
2405
2689
  * Created MCP
@@ -2414,9 +2698,6 @@ export const zMcpSearchBody = z.object({
2414
2698
  .default(["user", "org", "registry"]),
2415
2699
  limit: z.int().gte(1).lte(50).optional().default(20),
2416
2700
  });
2417
- export const zMcpSearchQuery = z.object({
2418
- scope: z.enum(["user"]).optional(),
2419
- });
2420
2701
  /**
2421
2702
  * Matching MCPs
2422
2703
  */
@@ -2428,9 +2709,6 @@ export const zMcpGetBySlugPath = z.object({
2428
2709
  .max(128)
2429
2710
  .regex(/^[a-z0-9-]+$/),
2430
2711
  });
2431
- export const zMcpGetBySlugQuery = z.object({
2432
- scope: z.enum(["user"]).optional(),
2433
- });
2434
2712
  /**
2435
2713
  * MCP details
2436
2714
  */
@@ -2438,9 +2716,6 @@ export const zMcpGetBySlugResponse = zMcp;
2438
2716
  export const zMcpGetPath = z.object({
2439
2717
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2440
2718
  });
2441
- export const zMcpGetQuery = z.object({
2442
- scope: z.enum(["user"]).optional(),
2443
- });
2444
2719
  /**
2445
2720
  * MCP details
2446
2721
  */
@@ -2469,9 +2744,6 @@ export const zMcpUpdateBody = z.object({
2469
2744
  export const zMcpUpdatePath = z.object({
2470
2745
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2471
2746
  });
2472
- export const zMcpUpdateQuery = z.object({
2473
- scope: z.enum(["user"]).optional(),
2474
- });
2475
2747
  /**
2476
2748
  * Updated MCP
2477
2749
  */
@@ -2479,9 +2751,6 @@ export const zMcpUpdateResponse = zMcp;
2479
2751
  export const zMcpArchivePath = z.object({
2480
2752
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2481
2753
  });
2482
- export const zMcpArchiveQuery = z.object({
2483
- scope: z.enum(["user"]).optional(),
2484
- });
2485
2754
  /**
2486
2755
  * Archived MCP
2487
2756
  */
@@ -2489,22 +2758,23 @@ export const zMcpArchiveResponse = zMcp;
2489
2758
  export const zMcpPublishPath = z.object({
2490
2759
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2491
2760
  });
2492
- export const zMcpPublishQuery = z.object({
2493
- scope: z.enum(["user"]).optional(),
2494
- });
2495
2761
  /**
2496
2762
  * Published MCP
2497
2763
  */
2498
2764
  export const zMcpPublishResponse = zMcp;
2765
+ export const zMcpPromotePath = z.object({
2766
+ id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2767
+ });
2768
+ /**
2769
+ * Promoted MCP
2770
+ */
2771
+ export const zMcpPromoteResponse = zMcp;
2499
2772
  export const zMcpDeprecateBody = z.object({
2500
2773
  message: z.string().nullish(),
2501
2774
  });
2502
2775
  export const zMcpDeprecatePath = z.object({
2503
2776
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2504
2777
  });
2505
- export const zMcpDeprecateQuery = z.object({
2506
- scope: z.enum(["user"]).optional(),
2507
- });
2508
2778
  /**
2509
2779
  * Deprecated MCP
2510
2780
  */
@@ -2512,9 +2782,6 @@ export const zMcpDeprecateResponse = zMcp;
2512
2782
  export const zMcpUndeprecatePath = z.object({
2513
2783
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2514
2784
  });
2515
- export const zMcpUndeprecateQuery = z.object({
2516
- scope: z.enum(["user"]).optional(),
2517
- });
2518
2785
  /**
2519
2786
  * Undeprecated MCP
2520
2787
  */
@@ -2523,9 +2790,6 @@ export const zMcpOauthConnectBody = zMcpOAuthConnectBody;
2523
2790
  export const zMcpOauthConnectPath = z.object({
2524
2791
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2525
2792
  });
2526
- export const zMcpOauthConnectQuery = z.object({
2527
- scope: z.enum(["user"]).optional(),
2528
- });
2529
2793
  /**
2530
2794
  * OAuth connect result
2531
2795
  */
@@ -2534,9 +2798,6 @@ export const zMcpOauthSessionPath = z.object({
2534
2798
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2535
2799
  sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/),
2536
2800
  });
2537
- export const zMcpOauthSessionQuery = z.object({
2538
- scope: z.enum(["user"]).optional(),
2539
- });
2540
2801
  /**
2541
2802
  * OAuth session status
2542
2803
  */
@@ -2545,13 +2806,27 @@ export const zMcpOauthSessionResponse = zOAuthSessionStatus;
2545
2806
  * Resolved auth context
2546
2807
  */
2547
2808
  export const zMeGetResponse = zMe;
2809
+ export const zMeUpdatePersonaBody = z.object({
2810
+ persona: zMemberPersona,
2811
+ });
2812
+ /**
2813
+ * Persona updated
2814
+ */
2815
+ export const zMeUpdatePersonaResponse = zMemberPersonaUpdate;
2816
+ export const zMeCompleteOnboardingBody = z.object({
2817
+ timezone: z.string().min(1).max(255).optional(),
2818
+ });
2819
+ /**
2820
+ * Onboarding recorded
2821
+ */
2822
+ export const zMeCompleteOnboardingResponse = zOnboardingComplete;
2548
2823
  export const zMemoryStoreListQuery = z.object({
2549
- scope: z.enum(["user"]).optional(),
2550
2824
  orgId: z.string().optional(),
2551
- limit: z.number().gte(1).lte(1000).optional(),
2552
- offset: z.number().gte(0).optional(),
2825
+ limit: z.int().gte(1).lte(1000).optional(),
2826
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2553
2827
  includeDeprecated: z.boolean().optional(),
2554
2828
  userId: z.string().nullish(),
2829
+ visibility: z.enum(["private", "org"]).optional(),
2555
2830
  });
2556
2831
  /**
2557
2832
  * List of memory stores
@@ -2561,9 +2836,7 @@ export const zMemoryStoreCreateBody = z.object({
2561
2836
  name: z.string().min(1).max(256),
2562
2837
  description: z.string().optional().default(""),
2563
2838
  isDefault: z.boolean().optional().default(false),
2564
- });
2565
- export const zMemoryStoreCreateQuery = z.object({
2566
- scope: z.enum(["user"]).optional(),
2839
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2567
2840
  });
2568
2841
  /**
2569
2842
  * Created memory store
@@ -2572,9 +2845,6 @@ export const zMemoryStoreCreateResponse = zMemoryStore;
2572
2845
  export const zMemoryStoreGetPath = z.object({
2573
2846
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2574
2847
  });
2575
- export const zMemoryStoreGetQuery = z.object({
2576
- scope: z.enum(["user"]).optional(),
2577
- });
2578
2848
  /**
2579
2849
  * Memory store details
2580
2850
  */
@@ -2586,9 +2856,6 @@ export const zMemoryStoreUpdateBody = z.object({
2586
2856
  export const zMemoryStoreUpdatePath = z.object({
2587
2857
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2588
2858
  });
2589
- export const zMemoryStoreUpdateQuery = z.object({
2590
- scope: z.enum(["user"]).optional(),
2591
- });
2592
2859
  /**
2593
2860
  * Updated memory store
2594
2861
  */
@@ -2596,9 +2863,6 @@ export const zMemoryStoreUpdateResponse = zMemoryStore;
2596
2863
  export const zMemoryStoreArchivePath = z.object({
2597
2864
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2598
2865
  });
2599
- export const zMemoryStoreArchiveQuery = z.object({
2600
- scope: z.enum(["user"]).optional(),
2601
- });
2602
2866
  /**
2603
2867
  * Archived memory store
2604
2868
  */
@@ -2607,7 +2871,6 @@ export const zMemoryStoreFilesDeletePath = z.object({
2607
2871
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2608
2872
  });
2609
2873
  export const zMemoryStoreFilesDeleteQuery = z.object({
2610
- scope: z.enum(["user"]).optional(),
2611
2874
  path: z.string().min(1),
2612
2875
  });
2613
2876
  /**
@@ -2620,7 +2883,6 @@ export const zMemoryStoreFilesListPath = z.object({
2620
2883
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2621
2884
  });
2622
2885
  export const zMemoryStoreFilesListQuery = z.object({
2623
- scope: z.enum(["user"]).optional(),
2624
2886
  prefix: z.string().optional(),
2625
2887
  limit: z.int().gt(0).lte(1000).optional(),
2626
2888
  });
@@ -2632,7 +2894,6 @@ export const zMemoryStoreFilesPresignDownloadPath = z.object({
2632
2894
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2633
2895
  });
2634
2896
  export const zMemoryStoreFilesPresignDownloadQuery = z.object({
2635
- scope: z.enum(["user"]).optional(),
2636
2897
  path: z.string().min(1),
2637
2898
  expiresInSeconds: z.int().gt(0).lte(9007199254740991).optional(),
2638
2899
  });
@@ -2648,9 +2909,6 @@ export const zMemoryStoreFilesStartUploadBody = z.object({
2648
2909
  export const zMemoryStoreFilesStartUploadPath = z.object({
2649
2910
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2650
2911
  });
2651
- export const zMemoryStoreFilesStartUploadQuery = z.object({
2652
- scope: z.enum(["user"]).optional(),
2653
- });
2654
2912
  /**
2655
2913
  * Presigned PUT URL the browser uploads to directly
2656
2914
  */
@@ -2661,9 +2919,6 @@ export const zMemoryStoreFilesFinalizeUploadBody = z.object({
2661
2919
  export const zMemoryStoreFilesFinalizeUploadPath = z.object({
2662
2920
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2663
2921
  });
2664
- export const zMemoryStoreFilesFinalizeUploadQuery = z.object({
2665
- scope: z.enum(["user"]).optional(),
2666
- });
2667
2922
  /**
2668
2923
  * Finalized file info
2669
2924
  */
@@ -2677,9 +2932,6 @@ export const zOnboardingStartBody = z.object({
2677
2932
  skillIds: z.array(z.string()).max(64).optional().default([]),
2678
2933
  mcpIds: z.array(z.string()).max(64).optional().default([]),
2679
2934
  });
2680
- export const zOnboardingStartQuery = z.object({
2681
- scope: z.enum(["user"]).optional(),
2682
- });
2683
2935
  /**
2684
2936
  * Session created and prompt sent
2685
2937
  */
@@ -2688,25 +2940,38 @@ export const zOnboardingStartResponse = zOnboardingStart;
2688
2940
  * Personal organization ready
2689
2941
  */
2690
2942
  export const zOnboardingSetupPersonalOrgResponse = zOnboardingSetupPersonalOrg;
2691
- export const zPatListQuery = z.object({
2692
- scope: z.enum(["user"]).optional(),
2943
+ /**
2944
+ * Organization settings
2945
+ */
2946
+ export const zOrgGetResponse = zOrgSettings;
2947
+ export const zOrgUpdateBody = z.object({
2948
+ defaultModel: z.string().nullish(),
2949
+ instructions: z.string().optional(),
2950
+ });
2951
+ /**
2952
+ * Updated organization settings
2953
+ */
2954
+ export const zOrgUpdateResponse = zOrgSettings;
2955
+ export const zOrganizationLogoUploadBody = z.object({
2956
+ file: z.string(),
2693
2957
  });
2958
+ /**
2959
+ * Persistent organization logo URL
2960
+ */
2961
+ export const zOrganizationLogoUploadResponse = zOrganizationLogoUpload;
2694
2962
  /**
2695
2963
  * List of PATs
2696
2964
  */
2697
2965
  export const zPatListResponse = z.array(zPat);
2698
2966
  export const zPatCreateBody = z.object({
2699
2967
  name: z.string().min(1).max(128),
2700
- scopes: z.array(z.string()).min(1),
2968
+ role: z.enum(["readonly", "member", "admin"]),
2701
2969
  expiresAt: z.iso
2702
2970
  .datetime()
2703
2971
  .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))$/)
2704
2972
  .nullish()
2705
2973
  .default(null),
2706
2974
  });
2707
- export const zPatCreateQuery = z.object({
2708
- scope: z.enum(["user"]).optional(),
2709
- });
2710
2975
  /**
2711
2976
  * Created PAT (token shown once)
2712
2977
  */
@@ -2717,20 +2982,17 @@ export const zPatCreateResponse = z.object({
2717
2982
  export const zPatRevokePath = z.object({
2718
2983
  id: z.string().regex(/^pat_[0-9A-HJKMNP-TV-Z]{26}$/),
2719
2984
  });
2720
- export const zPatRevokeQuery = z.object({
2721
- scope: z.enum(["user"]).optional(),
2722
- });
2723
2985
  /**
2724
2986
  * Revoked PAT
2725
2987
  */
2726
2988
  export const zPatRevokeResponse = zPat;
2727
2989
  export const zPodListQuery = z.object({
2728
- scope: z.enum(["user"]).optional(),
2729
2990
  orgId: z.string().optional(),
2730
- limit: z.number().gte(1).lte(1000).optional(),
2731
- offset: z.number().gte(0).optional(),
2991
+ limit: z.int().gte(1).lte(1000).optional(),
2992
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2732
2993
  includeDeprecated: z.boolean().optional(),
2733
2994
  userId: z.string().nullish(),
2995
+ visibility: z.enum(["private", "org"]).optional(),
2734
2996
  });
2735
2997
  /**
2736
2998
  * List of pods
@@ -2740,11 +3002,11 @@ export const zPodCreateBody = z.object({
2740
3002
  name: z.string().min(1).max(256),
2741
3003
  environmentId: z.string().nullish().default(null),
2742
3004
  description: z.string().optional().default(""),
3005
+ instructions: z.string().optional().default(""),
2743
3006
  isPrivate: z.boolean().optional().default(true),
2744
3007
  isDefault: z.boolean().optional().default(false),
2745
- });
2746
- export const zPodCreateQuery = z.object({
2747
- scope: z.enum(["user"]).optional(),
3008
+ createDefaultProject: z.boolean().optional().default(true),
3009
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2748
3010
  });
2749
3011
  /**
2750
3012
  * Created pod with freshly provisioned sandbox
@@ -2753,9 +3015,6 @@ export const zPodCreateResponse = zPodWithSandbox;
2753
3015
  export const zPodGetPath = z.object({
2754
3016
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2755
3017
  });
2756
- export const zPodGetQuery = z.object({
2757
- scope: z.enum(["user"]).optional(),
2758
- });
2759
3018
  /**
2760
3019
  * Pod details
2761
3020
  */
@@ -2765,22 +3024,25 @@ export const zPodUpdateBody = z.object({
2765
3024
  description: z.string().optional(),
2766
3025
  isPrivate: z.boolean().optional(),
2767
3026
  environmentId: z.string().nullish(),
3027
+ defaultModel: z.string().nullish(),
3028
+ instructions: z.string().optional(),
2768
3029
  });
2769
3030
  export const zPodUpdatePath = z.object({
2770
3031
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2771
3032
  });
2772
- export const zPodUpdateQuery = z.object({
2773
- scope: z.enum(["user"]).optional(),
2774
- });
2775
3033
  /**
2776
3034
  * Updated pod
2777
3035
  */
2778
3036
  export const zPodUpdateResponse = zPod;
2779
- export const zPodArchivePath = z.object({
3037
+ export const zPodUsagePath = z.object({
2780
3038
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2781
3039
  });
2782
- export const zPodArchiveQuery = z.object({
2783
- scope: z.enum(["user"]).optional(),
3040
+ /**
3041
+ * Pod credit usage
3042
+ */
3043
+ export const zPodUsageResponse = zUsage;
3044
+ export const zPodArchivePath = z.object({
3045
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2784
3046
  });
2785
3047
  /**
2786
3048
  * Archived pod
@@ -2789,9 +3051,6 @@ export const zPodArchiveResponse = zPod;
2789
3051
  export const zPodMemberListPath = z.object({
2790
3052
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2791
3053
  });
2792
- export const zPodMemberListQuery = z.object({
2793
- scope: z.enum(["user"]).optional(),
2794
- });
2795
3054
  /**
2796
3055
  * List of members
2797
3056
  */
@@ -2803,9 +3062,6 @@ export const zPodMemberAddBody = z.object({
2803
3062
  export const zPodMemberAddPath = z.object({
2804
3063
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2805
3064
  });
2806
- export const zPodMemberAddQuery = z.object({
2807
- scope: z.enum(["user"]).optional(),
2808
- });
2809
3065
  /**
2810
3066
  * Added member
2811
3067
  */
@@ -2814,9 +3070,6 @@ export const zPodMemberRemovePath = z.object({
2814
3070
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2815
3071
  userId: z.string().regex(/^usr_[0-9A-HJKMNP-TV-Z]{26}$/),
2816
3072
  });
2817
- export const zPodMemberRemoveQuery = z.object({
2818
- scope: z.enum(["user"]).optional(),
2819
- });
2820
3073
  /**
2821
3074
  * Removed member
2822
3075
  */
@@ -2824,9 +3077,6 @@ export const zPodMemberRemoveResponse = zPodMember;
2824
3077
  export const zPodVaultListPath = z.object({
2825
3078
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2826
3079
  });
2827
- export const zPodVaultListQuery = z.object({
2828
- scope: z.enum(["user"]).optional(),
2829
- });
2830
3080
  /**
2831
3081
  * List of vault associations
2832
3082
  */
@@ -2838,9 +3088,6 @@ export const zPodVaultAddBody = z.object({
2838
3088
  export const zPodVaultAddPath = z.object({
2839
3089
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2840
3090
  });
2841
- export const zPodVaultAddQuery = z.object({
2842
- scope: z.enum(["user"]).optional(),
2843
- });
2844
3091
  /**
2845
3092
  * Added vault
2846
3093
  */
@@ -2849,9 +3096,6 @@ export const zPodVaultRemovePath = z.object({
2849
3096
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2850
3097
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
2851
3098
  });
2852
- export const zPodVaultRemoveQuery = z.object({
2853
- scope: z.enum(["user"]).optional(),
2854
- });
2855
3099
  /**
2856
3100
  * Removed vault
2857
3101
  */
@@ -2859,9 +3103,6 @@ export const zPodVaultRemoveResponse = zPodVault;
2859
3103
  export const zPodSandboxProvisionPath = z.object({
2860
3104
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2861
3105
  });
2862
- export const zPodSandboxProvisionQuery = z.object({
2863
- scope: z.enum(["user"]).optional(),
2864
- });
2865
3106
  /**
2866
3107
  * Workflow started or joined
2867
3108
  */
@@ -2869,9 +3110,6 @@ export const zPodSandboxProvisionResponse2 = zPodSandboxProvisionResponse;
2869
3110
  export const zPodSandboxTeardownPath = z.object({
2870
3111
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2871
3112
  });
2872
- export const zPodSandboxTeardownQuery = z.object({
2873
- scope: z.enum(["user"]).optional(),
2874
- });
2875
3113
  /**
2876
3114
  * Teardown result
2877
3115
  */
@@ -2879,22 +3117,19 @@ export const zPodSandboxTeardownResponse2 = zPodSandboxTeardownResponse;
2879
3117
  export const zPodSandboxStatusPath = z.object({
2880
3118
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2881
3119
  });
2882
- export const zPodSandboxStatusQuery = z.object({
2883
- scope: z.enum(["user"]).optional(),
2884
- });
2885
3120
  /**
2886
3121
  * Current sandbox state
2887
3122
  */
2888
3123
  export const zPodSandboxStatusResponse2 = zPodSandboxStatusResponse;
2889
3124
  export const zProjectListQuery = z.object({
2890
- scope: z.enum(["user"]).optional(),
2891
- limit: z.number().gte(1).lte(1000).optional(),
2892
- offset: z.number().gte(0).optional(),
3125
+ limit: z.int().gte(1).lte(1000).optional(),
3126
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
2893
3127
  includeDeprecated: z.boolean().optional(),
2894
3128
  podId: z
2895
3129
  .string()
2896
3130
  .regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
2897
3131
  .optional(),
3132
+ visibility: z.enum(["private", "org"]).optional(),
2898
3133
  });
2899
3134
  /**
2900
3135
  * List of projects
@@ -2904,11 +3139,11 @@ export const zProjectCreateBody = z.object({
2904
3139
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2905
3140
  name: z.string().min(1).max(256),
2906
3141
  description: z.string().optional().default(""),
3142
+ instructions: z.string().optional().default(""),
2907
3143
  permission: zPermissionConfig.optional(),
2908
3144
  gitRepos: z.array(zProjectGitRepo).optional().default([]),
2909
- });
2910
- export const zProjectCreateQuery = z.object({
2911
- scope: z.enum(["user"]).optional(),
3145
+ references: zProjectReferences.optional(),
3146
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2912
3147
  });
2913
3148
  /**
2914
3149
  * Created project
@@ -2917,9 +3152,6 @@ export const zProjectCreateResponse = zProject;
2917
3152
  export const zProjectGetPath = z.object({
2918
3153
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2919
3154
  });
2920
- export const zProjectGetQuery = z.object({
2921
- scope: z.enum(["user"]).optional(),
2922
- });
2923
3155
  /**
2924
3156
  * Project details
2925
3157
  */
@@ -2929,22 +3161,37 @@ export const zProjectUpdateBody = z.object({
2929
3161
  description: z.string().optional(),
2930
3162
  permission: zPermissionConfig.optional(),
2931
3163
  gitRepos: z.array(zProjectGitRepo).optional(),
3164
+ references: zProjectReferences.optional(),
3165
+ defaultModel: z.string().nullish(),
3166
+ instructions: z.string().optional(),
2932
3167
  });
2933
3168
  export const zProjectUpdatePath = z.object({
2934
3169
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2935
3170
  });
2936
- export const zProjectUpdateQuery = z.object({
2937
- scope: z.enum(["user"]).optional(),
2938
- });
2939
3171
  /**
2940
3172
  * Updated project
2941
3173
  */
2942
3174
  export const zProjectUpdateResponse = zProject;
2943
- export const zProjectAgentListPath = z.object({
3175
+ export const zProjectUsagePath = z.object({
2944
3176
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2945
3177
  });
2946
- export const zProjectAgentListQuery = z.object({
2947
- scope: z.enum(["user"]).optional(),
3178
+ export const zProjectUsageQuery = z.object({
3179
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).optional(),
3180
+ start: z.iso
3181
+ .datetime()
3182
+ .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))$/)
3183
+ .optional(),
3184
+ end: z.iso
3185
+ .datetime()
3186
+ .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))$/)
3187
+ .optional(),
3188
+ });
3189
+ /**
3190
+ * Project credit usage
3191
+ */
3192
+ export const zProjectUsageResponse = zUsage;
3193
+ export const zProjectAgentListPath = z.object({
3194
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2948
3195
  });
2949
3196
  /**
2950
3197
  * List of agent memberships
@@ -2953,14 +3200,11 @@ export const zProjectAgentListResponse = z.array(zProjectAgent);
2953
3200
  export const zProjectAgentAddBody = z.object({
2954
3201
  agentId: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2955
3202
  agentVersionId: z.string().nullish().default(null),
2956
- type: z.enum(["primary", "subagent", "all"]).optional().default("all"),
3203
+ mode: z.enum(["subagent", "all"]).optional().default("all"),
2957
3204
  });
2958
3205
  export const zProjectAgentAddPath = z.object({
2959
3206
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2960
3207
  });
2961
- export const zProjectAgentAddQuery = z.object({
2962
- scope: z.enum(["user"]).optional(),
2963
- });
2964
3208
  /**
2965
3209
  * Attached agent
2966
3210
  */
@@ -2969,24 +3213,18 @@ export const zProjectAgentRemovePath = z.object({
2969
3213
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2970
3214
  agentId: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2971
3215
  });
2972
- export const zProjectAgentRemoveQuery = z.object({
2973
- scope: z.enum(["user"]).optional(),
2974
- });
2975
3216
  /**
2976
3217
  * Detached agent
2977
3218
  */
2978
3219
  export const zProjectAgentRemoveResponse = zProjectAgent;
2979
3220
  export const zProjectAgentUpdateBody = z.object({
2980
3221
  agentVersionId: z.string().nullish(),
2981
- type: z.enum(["primary", "subagent", "all"]).optional(),
3222
+ mode: z.enum(["subagent", "all"]).optional(),
2982
3223
  });
2983
3224
  export const zProjectAgentUpdatePath = z.object({
2984
3225
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2985
3226
  agentId: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2986
3227
  });
2987
- export const zProjectAgentUpdateQuery = z.object({
2988
- scope: z.enum(["user"]).optional(),
2989
- });
2990
3228
  /**
2991
3229
  * Updated agent membership
2992
3230
  */
@@ -2994,9 +3232,6 @@ export const zProjectAgentUpdateResponse = zProjectAgent;
2994
3232
  export const zProjectFileStoreListPath = z.object({
2995
3233
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2996
3234
  });
2997
- export const zProjectFileStoreListQuery = z.object({
2998
- scope: z.enum(["user"]).optional(),
2999
- });
3000
3235
  /**
3001
3236
  * List of file store attachments
3002
3237
  */
@@ -3007,9 +3242,6 @@ export const zProjectFileStoreAddBody = z.object({
3007
3242
  export const zProjectFileStoreAddPath = z.object({
3008
3243
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3009
3244
  });
3010
- export const zProjectFileStoreAddQuery = z.object({
3011
- scope: z.enum(["user"]).optional(),
3012
- });
3013
3245
  /**
3014
3246
  * Attached file store
3015
3247
  */
@@ -3018,9 +3250,6 @@ export const zProjectFileStoreRemovePath = z.object({
3018
3250
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3019
3251
  fileStoreId: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
3020
3252
  });
3021
- export const zProjectFileStoreRemoveQuery = z.object({
3022
- scope: z.enum(["user"]).optional(),
3023
- });
3024
3253
  /**
3025
3254
  * Detached file store
3026
3255
  */
@@ -3028,9 +3257,6 @@ export const zProjectFileStoreRemoveResponse = zProjectFileStore;
3028
3257
  export const zProjectMemoryStoreListPath = z.object({
3029
3258
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3030
3259
  });
3031
- export const zProjectMemoryStoreListQuery = z.object({
3032
- scope: z.enum(["user"]).optional(),
3033
- });
3034
3260
  /**
3035
3261
  * List of memory store attachments
3036
3262
  */
@@ -3041,9 +3267,6 @@ export const zProjectMemoryStoreAddBody = z.object({
3041
3267
  export const zProjectMemoryStoreAddPath = z.object({
3042
3268
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3043
3269
  });
3044
- export const zProjectMemoryStoreAddQuery = z.object({
3045
- scope: z.enum(["user"]).optional(),
3046
- });
3047
3270
  /**
3048
3271
  * Attached memory store
3049
3272
  */
@@ -3052,26 +3275,72 @@ export const zProjectMemoryStoreRemovePath = z.object({
3052
3275
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3053
3276
  memoryStoreId: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
3054
3277
  });
3055
- export const zProjectMemoryStoreRemoveQuery = z.object({
3056
- scope: z.enum(["user"]).optional(),
3057
- });
3058
3278
  /**
3059
3279
  * Detached memory store
3060
3280
  */
3061
3281
  export const zProjectMemoryStoreRemoveResponse = zProjectMemoryStore;
3062
- export const zProjectArchivePath = z.object({
3282
+ export const zProjectSkillListPath = z.object({
3283
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3284
+ });
3285
+ /**
3286
+ * List of project skill attachments
3287
+ */
3288
+ export const zProjectSkillListResponse = z.array(zProjectSkill);
3289
+ export const zProjectSkillAddBody = z.object({
3290
+ skillId: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3291
+ skillVersionId: z
3292
+ .string()
3293
+ .regex(/^skv_[0-9A-HJKMNP-TV-Z]{26}$/)
3294
+ .nullish()
3295
+ .default(null),
3296
+ });
3297
+ export const zProjectSkillAddPath = z.object({
3298
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3299
+ });
3300
+ /**
3301
+ * Attached skill
3302
+ */
3303
+ export const zProjectSkillAddResponse = zProjectSkill;
3304
+ export const zProjectSkillRemovePath = z.object({
3305
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3306
+ skillId: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3307
+ });
3308
+ /**
3309
+ * Detached skill
3310
+ */
3311
+ export const zProjectSkillRemoveResponse = zProjectSkill;
3312
+ export const zProjectMcpListPath = z.object({
3313
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3314
+ });
3315
+ /**
3316
+ * List of project MCP attachments
3317
+ */
3318
+ export const zProjectMcpListResponse = z.array(zProjectMcp);
3319
+ export const zProjectMcpAddBody = z.object({
3320
+ mcpId: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
3321
+ });
3322
+ export const zProjectMcpAddPath = z.object({
3063
3323
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3064
3324
  });
3065
- export const zProjectArchiveQuery = z.object({
3066
- scope: z.enum(["user"]).optional(),
3325
+ /**
3326
+ * Attached MCP
3327
+ */
3328
+ export const zProjectMcpAddResponse = zProjectMcp;
3329
+ export const zProjectMcpRemovePath = z.object({
3330
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3331
+ mcpId: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
3332
+ });
3333
+ /**
3334
+ * Detached MCP
3335
+ */
3336
+ export const zProjectMcpRemoveResponse = zProjectMcp;
3337
+ export const zProjectArchivePath = z.object({
3338
+ id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3067
3339
  });
3068
3340
  /**
3069
3341
  * Archived project
3070
3342
  */
3071
3343
  export const zProjectArchiveResponse = zProject;
3072
- export const zPublisherMeQuery = z.object({
3073
- scope: z.enum(["user"]).optional(),
3074
- });
3075
3344
  /**
3076
3345
  * Caller's org publisher
3077
3346
  */
@@ -3084,9 +3353,6 @@ export const zPublisherClaimOrgBody = z.object({
3084
3353
  .regex(/^[a-z0-9-]+$/)
3085
3354
  .optional(),
3086
3355
  });
3087
- export const zPublisherClaimOrgQuery = z.object({
3088
- scope: z.enum(["user"]).optional(),
3089
- });
3090
3356
  /**
3091
3357
  * Org publisher
3092
3358
  */
@@ -3094,9 +3360,6 @@ export const zPublisherClaimOrgResponse = zPublisher;
3094
3360
  export const zPublisherGetPath = z.object({
3095
3361
  id: z.string().regex(/^pub_[0-9A-HJKMNP-TV-Z]{26}$/),
3096
3362
  });
3097
- export const zPublisherGetQuery = z.object({
3098
- scope: z.enum(["user"]).optional(),
3099
- });
3100
3363
  /**
3101
3364
  * Publisher
3102
3365
  */
@@ -3106,6 +3369,7 @@ export const zPublisherUpdateBody = z.object({
3106
3369
  description: z.string().nullish(),
3107
3370
  avatar: z.string().nullish(),
3108
3371
  url: z.string().nullish(),
3372
+ links: z.array(zPublisherLink).optional(),
3109
3373
  slug: z
3110
3374
  .string()
3111
3375
  .min(1)
@@ -3116,19 +3380,16 @@ export const zPublisherUpdateBody = z.object({
3116
3380
  export const zPublisherUpdatePath = z.object({
3117
3381
  id: z.string().regex(/^pub_[0-9A-HJKMNP-TV-Z]{26}$/),
3118
3382
  });
3119
- export const zPublisherUpdateQuery = z.object({
3120
- scope: z.enum(["user"]).optional(),
3121
- });
3122
3383
  /**
3123
3384
  * Updated publisher
3124
3385
  */
3125
3386
  export const zPublisherUpdateResponse = zPublisher;
3126
3387
  export const zReplayListQuery = z.object({
3127
- scope: z.enum(["user"]).optional(),
3128
- limit: z.number().gte(1).lte(1000).optional(),
3129
- offset: z.number().gte(0).optional(),
3388
+ limit: z.int().gte(1).lte(1000).optional(),
3389
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3130
3390
  includeDeprecated: z.boolean().optional(),
3131
3391
  publisherId: z.string().optional(),
3392
+ visibility: z.enum(["private", "org"]).optional(),
3132
3393
  });
3133
3394
  /**
3134
3395
  * List
@@ -3139,9 +3400,7 @@ export const zReplayCreateBody = z.object({
3139
3400
  publisherId: z.string().nullish().default(null),
3140
3401
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
3141
3402
  shareToken: z.string().nullish().default(null),
3142
- });
3143
- export const zReplayCreateQuery = z.object({
3144
- scope: z.enum(["user"]).optional(),
3403
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3145
3404
  });
3146
3405
  /**
3147
3406
  * Created
@@ -3150,9 +3409,6 @@ export const zReplayCreateResponse = zReplay;
3150
3409
  export const zReplayGetPath = z.object({
3151
3410
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3152
3411
  });
3153
- export const zReplayGetQuery = z.object({
3154
- scope: z.enum(["user"]).optional(),
3155
- });
3156
3412
  /**
3157
3413
  * Details
3158
3414
  */
@@ -3163,9 +3419,6 @@ export const zReplayUpdateBody = z.object({
3163
3419
  export const zReplayUpdatePath = z.object({
3164
3420
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3165
3421
  });
3166
- export const zReplayUpdateQuery = z.object({
3167
- scope: z.enum(["user"]).optional(),
3168
- });
3169
3422
  /**
3170
3423
  * Updated
3171
3424
  */
@@ -3173,9 +3426,6 @@ export const zReplayUpdateResponse = zReplay;
3173
3426
  export const zReplayArchivePath = z.object({
3174
3427
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3175
3428
  });
3176
- export const zReplayArchiveQuery = z.object({
3177
- scope: z.enum(["user"]).optional(),
3178
- });
3179
3429
  /**
3180
3430
  * Archived
3181
3431
  */
@@ -3183,9 +3433,6 @@ export const zReplayArchiveResponse = zReplay;
3183
3433
  export const zReplayPublishPath = z.object({
3184
3434
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3185
3435
  });
3186
- export const zReplayPublishQuery = z.object({
3187
- scope: z.enum(["user"]).optional(),
3188
- });
3189
3436
  /**
3190
3437
  * Published replay
3191
3438
  */
@@ -3196,9 +3443,6 @@ export const zReplayDeprecateBody = z.object({
3196
3443
  export const zReplayDeprecatePath = z.object({
3197
3444
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3198
3445
  });
3199
- export const zReplayDeprecateQuery = z.object({
3200
- scope: z.enum(["user"]).optional(),
3201
- });
3202
3446
  /**
3203
3447
  * Deprecated replay
3204
3448
  */
@@ -3206,9 +3450,6 @@ export const zReplayDeprecateResponse = zReplay;
3206
3450
  export const zReplayUndeprecatePath = z.object({
3207
3451
  id: z.string().regex(/^rpl_[0-9A-HJKMNP-TV-Z]{26}$/),
3208
3452
  });
3209
- export const zReplayUndeprecateQuery = z.object({
3210
- scope: z.enum(["user"]).optional(),
3211
- });
3212
3453
  /**
3213
3454
  * Undeprecated replay
3214
3455
  */
@@ -3217,20 +3458,16 @@ export const zReplayShareBody = z.object({
3217
3458
  sessionId: z.string(),
3218
3459
  websiteMetadata: zWebsiteMetadata.nullish(),
3219
3460
  });
3220
- export const zReplayShareQuery = z.object({
3221
- scope: z.enum(["user"]).optional(),
3222
- });
3223
3461
  /**
3224
3462
  * Shared replay
3225
3463
  */
3226
3464
  export const zReplayShareResponse = zReplay;
3227
3465
  export const zSessionListQuery = z.object({
3228
- scope: z.enum(["user"]).optional(),
3229
3466
  podId: z.string().optional(),
3230
3467
  projectId: z.string().optional(),
3231
3468
  createdById: z.string().optional(),
3232
- limit: z.number().gte(1).lte(1000).optional(),
3233
- offset: z.number().gte(0).optional(),
3469
+ limit: z.int().gte(1).lte(1000).optional(),
3470
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3234
3471
  includeDeprecated: z.boolean().optional(),
3235
3472
  });
3236
3473
  /**
@@ -3242,19 +3479,20 @@ export const zSessionCreateBody = z.object({
3242
3479
  projectId: z.string().min(1),
3243
3480
  title: z.string().min(1).max(512),
3244
3481
  });
3245
- export const zSessionCreateQuery = z.object({
3246
- scope: z.enum(["user"]).optional(),
3482
+ /**
3483
+ * Session creation job accepted
3484
+ */
3485
+ export const zSessionCreateResponse = zSessionCreateJob;
3486
+ export const zSessionCreateStatusPath = z.object({
3487
+ jobId: z.string().regex(/^sjob_[0-9A-HJKMNP-TV-Z]{26}$/),
3247
3488
  });
3248
3489
  /**
3249
- * Created session
3490
+ * Session creation job status
3250
3491
  */
3251
- export const zSessionCreateResponse = zOpencodeSession;
3492
+ export const zSessionCreateStatusResponse = zSessionCreateStatus;
3252
3493
  export const zSessionGetPath = z.object({
3253
3494
  id: z.string().min(1),
3254
3495
  });
3255
- export const zSessionGetQuery = z.object({
3256
- scope: z.enum(["user"]).optional(),
3257
- });
3258
3496
  /**
3259
3497
  * Session details
3260
3498
  */
@@ -3278,9 +3516,6 @@ export const zSessionUpdateBody = z.object({
3278
3516
  export const zSessionUpdatePath = z.object({
3279
3517
  id: z.string().min(1),
3280
3518
  });
3281
- export const zSessionUpdateQuery = z.object({
3282
- scope: z.enum(["user"]).optional(),
3283
- });
3284
3519
  /**
3285
3520
  * Updated session
3286
3521
  */
@@ -3288,9 +3523,6 @@ export const zSessionUpdateResponse = zOpencodeSession;
3288
3523
  export const zSessionUrlPath = z.object({
3289
3524
  id: z.string().min(1),
3290
3525
  });
3291
- export const zSessionUrlQuery = z.object({
3292
- scope: z.enum(["user"]).optional(),
3293
- });
3294
3526
  /**
3295
3527
  * OpenCode URL
3296
3528
  */
@@ -3299,7 +3531,6 @@ export const zSessionMessagesListPath = z.object({
3299
3531
  id: z.string().min(1),
3300
3532
  });
3301
3533
  export const zSessionMessagesListQuery = z.object({
3302
- scope: z.enum(["user"]).optional(),
3303
3534
  pageNumber: z.int().gte(1).lte(9007199254740991).optional(),
3304
3535
  pageSize: z.int().gte(1).lte(100).optional(),
3305
3536
  });
@@ -3311,7 +3542,6 @@ export const zSessionTracesListPath = z.object({
3311
3542
  id: z.string().min(1),
3312
3543
  });
3313
3544
  export const zSessionTracesListQuery = z.object({
3314
- scope: z.enum(["user"]).optional(),
3315
3545
  limit: z.int().gt(0).lte(100).optional(),
3316
3546
  page: z.int().gt(0).lte(9007199254740991).optional(),
3317
3547
  fields: z.string().min(1).optional(),
@@ -3320,11 +3550,15 @@ export const zSessionTracesListQuery = z.object({
3320
3550
  * Session traces
3321
3551
  */
3322
3552
  export const zSessionTracesListResponse = zSessionTracesResponse;
3323
- export const zSessionAuthRequirementsPath = z.object({
3553
+ export const zSessionUsagePath = z.object({
3324
3554
  id: z.string().min(1),
3325
3555
  });
3326
- export const zSessionAuthRequirementsQuery = z.object({
3327
- scope: z.enum(["user"]).optional(),
3556
+ /**
3557
+ * Session credit usage
3558
+ */
3559
+ export const zSessionUsageResponse = zUsage;
3560
+ export const zSessionAuthRequirementsPath = z.object({
3561
+ id: z.string().min(1),
3328
3562
  });
3329
3563
  /**
3330
3564
  * Auth requirements with satisfaction flags
@@ -3333,9 +3567,6 @@ export const zSessionAuthRequirementsResponse = zAuthRequirements;
3333
3567
  export const zSessionArchivePath = z.object({
3334
3568
  id: z.string().min(1),
3335
3569
  });
3336
- export const zSessionArchiveQuery = z.object({
3337
- scope: z.enum(["user"]).optional(),
3338
- });
3339
3570
  /**
3340
3571
  * Archived session
3341
3572
  */
@@ -3348,9 +3579,6 @@ export const zSessionFilesPresignUploadBody = z.object({
3348
3579
  export const zSessionFilesPresignUploadPath = z.object({
3349
3580
  id: z.string().min(1),
3350
3581
  });
3351
- export const zSessionFilesPresignUploadQuery = z.object({
3352
- scope: z.enum(["user"]).optional(),
3353
- });
3354
3582
  /**
3355
3583
  * Presigned upload URL
3356
3584
  */
@@ -3359,19 +3587,16 @@ export const zSessionFilesPresignDownloadBody = zSessionVolumeRef;
3359
3587
  export const zSessionFilesPresignDownloadPath = z.object({
3360
3588
  id: z.string().min(1),
3361
3589
  });
3362
- export const zSessionFilesPresignDownloadQuery = z.object({
3363
- scope: z.enum(["user"]).optional(),
3364
- });
3365
3590
  /**
3366
3591
  * Presigned download URL
3367
3592
  */
3368
3593
  export const zSessionFilesPresignDownloadResponse2 = zSessionFilesPresignDownloadResponse;
3369
3594
  export const zSkillListQuery = z.object({
3370
- scope: z.enum(["user"]).optional(),
3371
- limit: z.number().gte(1).lte(1000).optional(),
3372
- offset: z.number().gte(0).optional(),
3595
+ limit: z.int().gte(1).lte(1000).optional(),
3596
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3373
3597
  includeDeprecated: z.boolean().optional(),
3374
3598
  sort: z.enum(["popular", "trending", "recent"]).optional(),
3599
+ visibility: z.enum(["private", "org"]).optional(),
3375
3600
  });
3376
3601
  /**
3377
3602
  * List of skills
@@ -3386,11 +3611,9 @@ export const zSkillCreateBody = z.object({
3386
3611
  requiredCredentials: z.string().optional(),
3387
3612
  releaseNotes: z.string().optional(),
3388
3613
  source: z.string().optional(),
3614
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3389
3615
  files: z.array(z.string()),
3390
3616
  });
3391
- export const zSkillCreateQuery = z.object({
3392
- scope: z.enum(["user"]).optional(),
3393
- });
3394
3617
  /**
3395
3618
  * Created skill
3396
3619
  */
@@ -3404,9 +3627,6 @@ export const zSkillSearchBody = z.object({
3404
3627
  .default(["user", "org", "registry"]),
3405
3628
  limit: z.int().gte(1).lte(50).optional().default(20),
3406
3629
  });
3407
- export const zSkillSearchQuery = z.object({
3408
- scope: z.enum(["user"]).optional(),
3409
- });
3410
3630
  /**
3411
3631
  * Matching skills
3412
3632
  */
@@ -3418,9 +3638,6 @@ export const zSkillGetBySlugPath = z.object({
3418
3638
  .max(128)
3419
3639
  .regex(/^[a-z0-9-]+$/),
3420
3640
  });
3421
- export const zSkillGetBySlugQuery = z.object({
3422
- scope: z.enum(["user"]).optional(),
3423
- });
3424
3641
  /**
3425
3642
  * Skill details
3426
3643
  */
@@ -3428,9 +3645,6 @@ export const zSkillGetBySlugResponse = zSkill;
3428
3645
  export const zSkillGetPath = z.object({
3429
3646
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3430
3647
  });
3431
- export const zSkillGetQuery = z.object({
3432
- scope: z.enum(["user"]).optional(),
3433
- });
3434
3648
  /**
3435
3649
  * Skill details
3436
3650
  */
@@ -3447,9 +3661,6 @@ export const zSkillUpdateBody = z.object({
3447
3661
  export const zSkillUpdatePath = z.object({
3448
3662
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3449
3663
  });
3450
- export const zSkillUpdateQuery = z.object({
3451
- scope: z.enum(["user"]).optional(),
3452
- });
3453
3664
  /**
3454
3665
  * Updated skill
3455
3666
  */
@@ -3457,9 +3668,6 @@ export const zSkillUpdateResponse = zSkill;
3457
3668
  export const zSkillArchivePath = z.object({
3458
3669
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3459
3670
  });
3460
- export const zSkillArchiveQuery = z.object({
3461
- scope: z.enum(["user"]).optional(),
3462
- });
3463
3671
  /**
3464
3672
  * Archived skill
3465
3673
  */
@@ -3467,9 +3675,6 @@ export const zSkillArchiveResponse = zSkill;
3467
3675
  export const zSkillPublishPath = z.object({
3468
3676
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3469
3677
  });
3470
- export const zSkillPublishQuery = z.object({
3471
- scope: z.enum(["user"]).optional(),
3472
- });
3473
3678
  /**
3474
3679
  * Published skill
3475
3680
  */
@@ -3480,9 +3685,6 @@ export const zSkillDeprecateBody = z.object({
3480
3685
  export const zSkillDeprecatePath = z.object({
3481
3686
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3482
3687
  });
3483
- export const zSkillDeprecateQuery = z.object({
3484
- scope: z.enum(["user"]).optional(),
3485
- });
3486
3688
  /**
3487
3689
  * Deprecated skill
3488
3690
  */
@@ -3490,9 +3692,6 @@ export const zSkillDeprecateResponse = zSkill;
3490
3692
  export const zSkillUndeprecatePath = z.object({
3491
3693
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3492
3694
  });
3493
- export const zSkillUndeprecateQuery = z.object({
3494
- scope: z.enum(["user"]).optional(),
3495
- });
3496
3695
  /**
3497
3696
  * Undeprecated skill
3498
3697
  */
@@ -3500,24 +3699,28 @@ export const zSkillUndeprecateResponse = zSkill;
3500
3699
  export const zSkillCopyBody = z.object({
3501
3700
  name: z.string(),
3502
3701
  version: z.string().optional(),
3702
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3503
3703
  });
3504
3704
  export const zSkillCopyPath = z.object({
3505
3705
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3506
3706
  });
3507
- export const zSkillCopyQuery = z.object({
3508
- scope: z.enum(["user"]).optional(),
3509
- });
3510
3707
  /**
3511
3708
  * Copied skill
3512
3709
  */
3513
3710
  export const zSkillCopyResponse = zSkill;
3711
+ export const zSkillPromotePath = z.object({
3712
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3713
+ });
3714
+ /**
3715
+ * Promoted skill
3716
+ */
3717
+ export const zSkillPromoteResponse = zSkill;
3514
3718
  export const zSkillVersionListPath = z.object({
3515
3719
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3516
3720
  });
3517
3721
  export const zSkillVersionListQuery = z.object({
3518
- scope: z.enum(["user"]).optional(),
3519
- limit: z.number().gte(1).lte(1000).optional(),
3520
- offset: z.number().gte(0).optional(),
3722
+ limit: z.int().gte(1).lte(1000).optional(),
3723
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3521
3724
  includeDeprecated: z.boolean().optional(),
3522
3725
  });
3523
3726
  /**
@@ -3534,9 +3737,6 @@ export const zSkillVersionCreateBody = z.object({
3534
3737
  export const zSkillVersionCreatePath = z.object({
3535
3738
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3536
3739
  });
3537
- export const zSkillVersionCreateQuery = z.object({
3538
- scope: z.enum(["user"]).optional(),
3539
- });
3540
3740
  /**
3541
3741
  * Created skill version
3542
3742
  */
@@ -3545,9 +3745,6 @@ export const zSkillVersionGetPath = z.object({
3545
3745
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3546
3746
  version: z.string().min(1).max(32),
3547
3747
  });
3548
- export const zSkillVersionGetQuery = z.object({
3549
- scope: z.enum(["user"]).optional(),
3550
- });
3551
3748
  /**
3552
3749
  * Skill version details
3553
3750
  */
@@ -3557,7 +3754,6 @@ export const zSkillVersionDataPath = z.object({
3557
3754
  version: z.string().min(1).max(32),
3558
3755
  });
3559
3756
  export const zSkillVersionDataQuery = z.object({
3560
- scope: z.enum(["user"]).optional(),
3561
3757
  format: z.enum(["json", "presigned"]).optional(),
3562
3758
  });
3563
3759
  /**
@@ -3566,7 +3762,7 @@ export const zSkillVersionDataQuery = z.object({
3566
3762
  export const zSkillVersionDataResponse = z.union([
3567
3763
  z.object({
3568
3764
  files: z.array(z.object({
3569
- path: z.string(),
3765
+ path: z.string().min(1),
3570
3766
  content: z.string(),
3571
3767
  })),
3572
3768
  }),
@@ -3584,9 +3780,6 @@ export const zSkillVersionArchivePath = z.object({
3584
3780
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
3585
3781
  version: z.string().min(1).max(32),
3586
3782
  });
3587
- export const zSkillVersionArchiveQuery = z.object({
3588
- scope: z.enum(["user"]).optional(),
3589
- });
3590
3783
  /**
3591
3784
  * Archived skill version
3592
3785
  */
@@ -3596,18 +3789,14 @@ export const zSkillVersionArchiveResponse = zSkillVersion;
3596
3789
  */
3597
3790
  export const zTopologyGetResponse = zTopology;
3598
3791
  export const zTopologyShareListQuery = z.object({
3599
- scope: z.enum(["user"]).optional(),
3600
- limit: z.number().gte(1).lte(1000).optional(),
3601
- offset: z.number().gte(0).optional(),
3792
+ limit: z.int().gte(1).lte(1000).optional(),
3793
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3602
3794
  includeDeprecated: z.boolean().optional(),
3603
3795
  });
3604
3796
  /**
3605
3797
  * List of topology shares
3606
3798
  */
3607
3799
  export const zTopologyShareListResponse = z.array(zTopologyShare);
3608
- export const zTopologyShareCreateQuery = z.object({
3609
- scope: z.enum(["user"]).optional(),
3610
- });
3611
3800
  /**
3612
3801
  * Created topology share
3613
3802
  */
@@ -3615,17 +3804,13 @@ export const zTopologyShareCreateResponse = zTopologyShare;
3615
3804
  export const zTopologyShareArchivePath = z.object({
3616
3805
  id: z.string().regex(/^tps_[0-9A-HJKMNP-TV-Z]{26}$/),
3617
3806
  });
3618
- export const zTopologyShareArchiveQuery = z.object({
3619
- scope: z.enum(["user"]).optional(),
3620
- });
3621
3807
  /**
3622
3808
  * Archived topology share
3623
3809
  */
3624
3810
  export const zTopologyShareArchiveResponse = zTopologyShare;
3625
3811
  export const zTriggerListQuery = z.object({
3626
- scope: z.enum(["user"]).optional(),
3627
- limit: z.number().gte(1).lte(1000).optional(),
3628
- offset: z.number().gte(0).optional(),
3812
+ limit: z.int().gte(1).lte(1000).optional(),
3813
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3629
3814
  includeDeprecated: z.boolean().optional(),
3630
3815
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3631
3816
  });
@@ -3647,9 +3832,6 @@ export const zTriggerCreateBody = z.object({
3647
3832
  .default(null),
3648
3833
  isEnabled: z.boolean().optional().default(true),
3649
3834
  });
3650
- export const zTriggerCreateQuery = z.object({
3651
- scope: z.enum(["user"]).optional(),
3652
- });
3653
3835
  /**
3654
3836
  * Created cron trigger
3655
3837
  */
@@ -3658,7 +3840,6 @@ export const zTriggerGetPath = z.object({
3658
3840
  triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3659
3841
  });
3660
3842
  export const zTriggerGetQuery = z.object({
3661
- scope: z.enum(["user"]).optional(),
3662
3843
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3663
3844
  });
3664
3845
  /**
@@ -3681,9 +3862,6 @@ export const zTriggerUpdateBody = z.object({
3681
3862
  export const zTriggerUpdatePath = z.object({
3682
3863
  triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3683
3864
  });
3684
- export const zTriggerUpdateQuery = z.object({
3685
- scope: z.enum(["user"]).optional(),
3686
- });
3687
3865
  /**
3688
3866
  * Updated cron trigger
3689
3867
  */
@@ -3694,17 +3872,13 @@ export const zTriggerArchiveBody = z.object({
3694
3872
  export const zTriggerArchivePath = z.object({
3695
3873
  triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3696
3874
  });
3697
- export const zTriggerArchiveQuery = z.object({
3698
- scope: z.enum(["user"]).optional(),
3699
- });
3700
3875
  /**
3701
3876
  * Archived cron trigger
3702
3877
  */
3703
3878
  export const zTriggerArchiveResponse = zCronTrigger;
3704
3879
  export const zWebhookTriggerListQuery = z.object({
3705
- scope: z.enum(["user"]).optional(),
3706
- limit: z.number().gte(1).lte(1000).optional(),
3707
- offset: z.number().gte(0).optional(),
3880
+ limit: z.int().gte(1).lte(1000).optional(),
3881
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3708
3882
  includeDeprecated: z.boolean().optional(),
3709
3883
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3710
3884
  });
@@ -3722,13 +3896,11 @@ export const zWebhookTriggerCreateBody = z.object({
3722
3896
  .object({
3723
3897
  channelId: z.string().optional(),
3724
3898
  linearProjectId: z.string().optional(),
3899
+ linearProjectName: z.string().optional(),
3725
3900
  })
3726
3901
  .nullable(),
3727
3902
  isEnabled: z.boolean().optional().default(true),
3728
3903
  });
3729
- export const zWebhookTriggerCreateQuery = z.object({
3730
- scope: z.enum(["user"]).optional(),
3731
- });
3732
3904
  /**
3733
3905
  * Created webhook trigger (with plaintext secret for generic triggers)
3734
3906
  */
@@ -3737,7 +3909,6 @@ export const zWebhookTriggerGetPath = z.object({
3737
3909
  triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3738
3910
  });
3739
3911
  export const zWebhookTriggerGetQuery = z.object({
3740
- scope: z.enum(["user"]).optional(),
3741
3912
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3742
3913
  });
3743
3914
  /**
@@ -3751,6 +3922,7 @@ export const zWebhookTriggerUpdateBody = z.object({
3751
3922
  .object({
3752
3923
  channelId: z.string().optional(),
3753
3924
  linearProjectId: z.string().optional(),
3925
+ linearProjectName: z.string().optional(),
3754
3926
  })
3755
3927
  .nullish(),
3756
3928
  isEnabled: z.boolean().optional(),
@@ -3759,9 +3931,6 @@ export const zWebhookTriggerUpdateBody = z.object({
3759
3931
  export const zWebhookTriggerUpdatePath = z.object({
3760
3932
  triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3761
3933
  });
3762
- export const zWebhookTriggerUpdateQuery = z.object({
3763
- scope: z.enum(["user"]).optional(),
3764
- });
3765
3934
  /**
3766
3935
  * Updated webhook trigger
3767
3936
  */
@@ -3772,38 +3941,32 @@ export const zWebhookTriggerArchiveBody = z.object({
3772
3941
  export const zWebhookTriggerArchivePath = z.object({
3773
3942
  triggerId: z.string().regex(/^wtrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3774
3943
  });
3775
- export const zWebhookTriggerArchiveQuery = z.object({
3776
- scope: z.enum(["user"]).optional(),
3777
- });
3778
3944
  /**
3779
3945
  * Archived webhook trigger
3780
3946
  */
3781
3947
  export const zWebhookTriggerArchiveResponse = zWebhookTrigger;
3782
- export const zSlackUninstallQuery = z.object({
3783
- scope: z.enum(["user"]).optional(),
3784
- });
3785
3948
  /**
3786
3949
  * Removed
3787
3950
  */
3788
3951
  export const zSlackUninstallResponse = z.void();
3789
3952
  export const zSlackInstallQuery = z.object({
3790
- scope: z.enum(["user"]).optional(),
3791
3953
  returnTo: z.string().optional(),
3792
3954
  });
3793
3955
  /**
3794
3956
  * Authorization URL for the user to visit
3795
3957
  */
3796
3958
  export const zSlackInstallResponse = zSlackOAuthStartResult;
3797
- export const zSlackStatusQuery = z.object({
3798
- scope: z.enum(["user"]).optional(),
3959
+ export const zSlackOnboardingResolveQuery = z.object({
3960
+ returnTo: z.string().optional(),
3799
3961
  });
3962
+ /**
3963
+ * Whether the workspace is already installed or needs the bot install flow
3964
+ */
3965
+ export const zSlackOnboardingResolveResponse = zSlackOnboardingResolveResult;
3800
3966
  /**
3801
3967
  * Slack installation status
3802
3968
  */
3803
3969
  export const zSlackStatusResponse = zSlackStatus;
3804
- export const zSlackChannelListQuery = z.object({
3805
- scope: z.enum(["user"]).optional(),
3806
- });
3807
3970
  /**
3808
3971
  * Channels visible to the Ren bot
3809
3972
  */
@@ -3811,9 +3974,6 @@ export const zSlackChannelListResponse = z.array(zSlackChannel);
3811
3974
  export const zSlackChannelUnsetPath = z.object({
3812
3975
  channelId: z.string().min(1),
3813
3976
  });
3814
- export const zSlackChannelUnsetQuery = z.object({
3815
- scope: z.enum(["user"]).optional(),
3816
- });
3817
3977
  /**
3818
3978
  * Updated installation
3819
3979
  */
@@ -3826,15 +3986,12 @@ export const zSlackChannelSetPath = z.object({
3826
3986
  channelId: z.string().min(1),
3827
3987
  });
3828
3988
  export const zSlackChannelSetQuery = z.object({
3829
- scope: z.enum(["user"]).optional(),
3989
+ notify: z.enum(["true", "false"]).optional(),
3830
3990
  });
3831
3991
  /**
3832
3992
  * Updated installation
3833
3993
  */
3834
3994
  export const zSlackChannelSetResponse = zSlackInstallationResponse;
3835
- export const zEmailListQuery = z.object({
3836
- scope: z.enum(["user"]).optional(),
3837
- });
3838
3995
  /**
3839
3996
  * Email mailboxes
3840
3997
  */
@@ -3842,9 +3999,6 @@ export const zEmailListResponse = z.array(zProjectEmailResponse);
3842
3999
  export const zEmailUnsetPath = z.object({
3843
4000
  projectId: z.string().min(1),
3844
4001
  });
3845
- export const zEmailUnsetQuery = z.object({
3846
- scope: z.enum(["user"]).optional(),
3847
- });
3848
4002
  /**
3849
4003
  * Removed
3850
4004
  */
@@ -3855,30 +4009,18 @@ export const zEmailSetBody = z.object({
3855
4009
  export const zEmailSetPath = z.object({
3856
4010
  projectId: z.string().min(1),
3857
4011
  });
3858
- export const zEmailSetQuery = z.object({
3859
- scope: z.enum(["user"]).optional(),
3860
- });
3861
4012
  /**
3862
4013
  * The project's email mailbox
3863
4014
  */
3864
4015
  export const zEmailSetResponse = zProjectEmailResponse;
3865
- export const zTelegramLinkCodeQuery = z.object({
3866
- scope: z.enum(["user"]).optional(),
3867
- });
3868
4016
  /**
3869
4017
  * Link code
3870
4018
  */
3871
4019
  export const zTelegramLinkCodeResponse = zTelegramLinkCode;
3872
- export const zTelegramMeQuery = z.object({
3873
- scope: z.enum(["user"]).optional(),
3874
- });
3875
4020
  /**
3876
4021
  * Link status
3877
4022
  */
3878
4023
  export const zTelegramMeResponse = zTelegramLinkStatus;
3879
- export const zTelegramUnlinkQuery = z.object({
3880
- scope: z.enum(["user"]).optional(),
3881
- });
3882
4024
  /**
3883
4025
  * Unlinked
3884
4026
  */
@@ -3887,16 +4029,10 @@ export const zTelegramClaimCodeBody = z.object({
3887
4029
  projectId: z.string().min(1),
3888
4030
  fallbackSenderUserId: z.string().min(1).nullish().default(null),
3889
4031
  });
3890
- export const zTelegramClaimCodeQuery = z.object({
3891
- scope: z.enum(["user"]).optional(),
3892
- });
3893
4032
  /**
3894
4033
  * Claim code
3895
4034
  */
3896
4035
  export const zTelegramClaimCodeResponse = zTelegramClaimCode;
3897
- export const zTelegramChatListQuery = z.object({
3898
- scope: z.enum(["user"]).optional(),
3899
- });
3900
4036
  /**
3901
4037
  * Mapped chats
3902
4038
  */
@@ -3905,7 +4041,6 @@ export const zTelegramChatUnsetPath = z.object({
3905
4041
  chatId: z.string().min(1),
3906
4042
  });
3907
4043
  export const zTelegramChatUnsetQuery = z.object({
3908
- scope: z.enum(["user"]).optional(),
3909
4044
  topicId: z.string().optional().default(""),
3910
4045
  });
3911
4046
  /**
@@ -3922,45 +4057,31 @@ export const zTelegramChatSetPath = z.object({
3922
4057
  chatId: z.string().min(1),
3923
4058
  });
3924
4059
  export const zTelegramChatSetQuery = z.object({
3925
- scope: z.enum(["user"]).optional(),
3926
4060
  topicId: z.string().optional().default(""),
3927
4061
  });
3928
4062
  /**
3929
4063
  * Updated mapping
3930
4064
  */
3931
4065
  export const zTelegramChatSetResponse = zTelegramChatMapping;
3932
- export const zLinearUninstallQuery = z.object({
3933
- scope: z.enum(["user"]).optional(),
3934
- });
3935
4066
  /**
3936
4067
  * Removed
3937
4068
  */
3938
4069
  export const zLinearUninstallResponse = z.void();
3939
4070
  export const zLinearInstallQuery = z.object({
3940
- scope: z.enum(["user"]).optional(),
3941
4071
  returnTo: z.string().optional(),
3942
4072
  });
3943
4073
  /**
3944
4074
  * Authorization URL for the user to visit
3945
4075
  */
3946
4076
  export const zLinearInstallResponse = zLinearOAuthStartResult;
3947
- export const zLinearStatusQuery = z.object({
3948
- scope: z.enum(["user"]).optional(),
3949
- });
3950
4077
  /**
3951
4078
  * Linear installation status
3952
4079
  */
3953
4080
  export const zLinearStatusResponse = zLinearStatus;
3954
- export const zLinearProjectsQuery = z.object({
3955
- scope: z.enum(["user"]).optional(),
3956
- });
3957
4081
  /**
3958
4082
  * Linear projects (with a __global__ entry for issues without a project)
3959
4083
  */
3960
4084
  export const zLinearProjectsResponse = z.array(zLinearProject);
3961
- export const zLinearMappingsListQuery = z.object({
3962
- scope: z.enum(["user"]).optional(),
3963
- });
3964
4085
  /**
3965
4086
  * Linear project mappings
3966
4087
  */
@@ -3971,9 +4092,6 @@ export const zLinearMappingsCreateBody = z.object({
3971
4092
  senderUserId: z.string().min(1),
3972
4093
  projectAgentId: z.string().nullish(),
3973
4094
  });
3974
- export const zLinearMappingsCreateQuery = z.object({
3975
- scope: z.enum(["user"]).optional(),
3976
- });
3977
4095
  /**
3978
4096
  * Created mapping
3979
4097
  */
@@ -3981,18 +4099,15 @@ export const zLinearMappingsCreateResponse = zLinearMapping;
3981
4099
  export const zLinearMappingsRemovePath = z.object({
3982
4100
  triggerId: z.string().min(1),
3983
4101
  });
3984
- export const zLinearMappingsRemoveQuery = z.object({
3985
- scope: z.enum(["user"]).optional(),
3986
- });
3987
4102
  /**
3988
4103
  * Removed
3989
4104
  */
3990
4105
  export const zLinearMappingsRemoveResponse = z.void();
3991
4106
  export const zVaultListQuery = z.object({
3992
- scope: z.enum(["user"]).optional(),
3993
- limit: z.number().gte(1).lte(1000).optional(),
3994
- offset: z.number().gte(0).optional(),
4107
+ limit: z.int().gte(1).lte(1000).optional(),
4108
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3995
4109
  includeDeprecated: z.boolean().optional(),
4110
+ visibility: z.enum(["private", "org"]).optional(),
3996
4111
  });
3997
4112
  /**
3998
4113
  * List of vaults
@@ -4002,9 +4117,7 @@ export const zVaultCreateBody = z.object({
4002
4117
  name: z.string().min(1).max(256),
4003
4118
  description: z.string().optional().default(""),
4004
4119
  isDefault: z.boolean().optional().default(false),
4005
- });
4006
- export const zVaultCreateQuery = z.object({
4007
- scope: z.enum(["user"]).optional(),
4120
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4008
4121
  });
4009
4122
  /**
4010
4123
  * Created vault
@@ -4013,9 +4126,6 @@ export const zVaultCreateResponse = zVault;
4013
4126
  export const zVaultDeletePath = z.object({
4014
4127
  id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4015
4128
  });
4016
- export const zVaultDeleteQuery = z.object({
4017
- scope: z.enum(["user"]).optional(),
4018
- });
4019
4129
  /**
4020
4130
  * Deleted vault
4021
4131
  */
@@ -4023,9 +4133,6 @@ export const zVaultDeleteResponse = zVault;
4023
4133
  export const zVaultGetPath = z.object({
4024
4134
  id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4025
4135
  });
4026
- export const zVaultGetQuery = z.object({
4027
- scope: z.enum(["user"]).optional(),
4028
- });
4029
4136
  /**
4030
4137
  * Vault details
4031
4138
  */
@@ -4037,9 +4144,6 @@ export const zVaultUpdateBody = z.object({
4037
4144
  export const zVaultUpdatePath = z.object({
4038
4145
  id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4039
4146
  });
4040
- export const zVaultUpdateQuery = z.object({
4041
- scope: z.enum(["user"]).optional(),
4042
- });
4043
4147
  /**
4044
4148
  * Updated vault
4045
4149
  */
@@ -4047,9 +4151,6 @@ export const zVaultUpdateResponse = zVault;
4047
4151
  export const zVaultArchivePath = z.object({
4048
4152
  id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4049
4153
  });
4050
- export const zVaultArchiveQuery = z.object({
4051
- scope: z.enum(["user"]).optional(),
4052
- });
4053
4154
  /**
4054
4155
  * Archived vault
4055
4156
  */
@@ -4058,9 +4159,8 @@ export const zCredentialListPath = z.object({
4058
4159
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4059
4160
  });
4060
4161
  export const zCredentialListQuery = z.object({
4061
- scope: z.enum(["user"]).optional(),
4062
- limit: z.number().gte(1).lte(1000).optional(),
4063
- offset: z.number().gte(0).optional(),
4162
+ limit: z.int().gte(1).lte(1000).optional(),
4163
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
4064
4164
  includeDeprecated: z.boolean().optional(),
4065
4165
  });
4066
4166
  /**
@@ -4082,9 +4182,6 @@ export const zCredentialCreateBody = z.object({
4082
4182
  export const zCredentialCreatePath = z.object({
4083
4183
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4084
4184
  });
4085
- export const zCredentialCreateQuery = z.object({
4086
- scope: z.enum(["user"]).optional(),
4087
- });
4088
4185
  /**
4089
4186
  * Created credential
4090
4187
  */
@@ -4093,9 +4190,6 @@ export const zCredentialDeletePath = z.object({
4093
4190
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4094
4191
  id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4095
4192
  });
4096
- export const zCredentialDeleteQuery = z.object({
4097
- scope: z.enum(["user"]).optional(),
4098
- });
4099
4193
  /**
4100
4194
  * Deleted credential
4101
4195
  */
@@ -4104,9 +4198,6 @@ export const zCredentialGetPath = z.object({
4104
4198
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4105
4199
  id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4106
4200
  });
4107
- export const zCredentialGetQuery = z.object({
4108
- scope: z.enum(["user"]).optional(),
4109
- });
4110
4201
  /**
4111
4202
  * Credential details
4112
4203
  */
@@ -4119,9 +4210,6 @@ export const zCredentialUpdatePath = z.object({
4119
4210
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4120
4211
  id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4121
4212
  });
4122
- export const zCredentialUpdateQuery = z.object({
4123
- scope: z.enum(["user"]).optional(),
4124
- });
4125
4213
  /**
4126
4214
  * Updated credential
4127
4215
  */
@@ -4130,20 +4218,23 @@ export const zCredentialArchivePath = z.object({
4130
4218
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4131
4219
  id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4132
4220
  });
4133
- export const zCredentialArchiveQuery = z.object({
4134
- scope: z.enum(["user"]).optional(),
4135
- });
4136
4221
  /**
4137
4222
  * Archived credential
4138
4223
  */
4139
4224
  export const zCredentialArchiveResponse = zCredential;
4225
+ export const zCredentialTransferBody = zCredentialTransferInput;
4226
+ export const zCredentialTransferPath = z.object({
4227
+ vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4228
+ id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4229
+ });
4230
+ /**
4231
+ * Credential transferred
4232
+ */
4233
+ export const zCredentialTransferResponse = zCredentialTransferResult;
4140
4234
  export const zCredentialOauthStartBody = zOAuthStartInput;
4141
4235
  export const zCredentialOauthStartPath = z.object({
4142
4236
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4143
4237
  });
4144
- export const zCredentialOauthStartQuery = z.object({
4145
- scope: z.enum(["user"]).optional(),
4146
- });
4147
4238
  /**
4148
4239
  * Authorization URL for the user to visit
4149
4240
  */
@@ -4152,16 +4243,13 @@ export const zCredentialOauthSessionPath = z.object({
4152
4243
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4153
4244
  sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/),
4154
4245
  });
4155
- export const zCredentialOauthSessionQuery = z.object({
4156
- scope: z.enum(["user"]).optional(),
4157
- });
4158
4246
  /**
4159
4247
  * Session status snapshot
4160
4248
  */
4161
4249
  export const zCredentialOauthSessionResponse = zOAuthSessionStatus;
4162
4250
  export const zRegistryAgentListQuery = z.object({
4163
- limit: z.number().gte(1).lte(1000).optional(),
4164
- offset: z.number().gte(0).optional(),
4251
+ limit: z.int().gte(1).lte(1000).optional(),
4252
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
4165
4253
  includeDeprecated: z.boolean().optional(),
4166
4254
  });
4167
4255
  /**
@@ -4176,8 +4264,8 @@ export const zRegistryAgentGetPath = z.object({
4176
4264
  */
4177
4265
  export const zRegistryAgentGetResponse = zAgent;
4178
4266
  export const zRegistrySkillListQuery = z.object({
4179
- limit: z.number().gte(1).lte(1000).optional(),
4180
- offset: z.number().gte(0).optional(),
4267
+ limit: z.int().gte(1).lte(1000).optional(),
4268
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
4181
4269
  includeDeprecated: z.boolean().optional(),
4182
4270
  sort: z.enum(["popular", "trending", "recent"]).optional(),
4183
4271
  });
@@ -4193,8 +4281,8 @@ export const zRegistrySkillGetPath = z.object({
4193
4281
  */
4194
4282
  export const zRegistrySkillGetResponse = zSkill;
4195
4283
  export const zRegistryMcpListQuery = z.object({
4196
- limit: z.number().gte(1).lte(1000).optional(),
4197
- offset: z.number().gte(0).optional(),
4284
+ limit: z.int().gte(1).lte(1000).optional(),
4285
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
4198
4286
  includeDeprecated: z.boolean().optional(),
4199
4287
  sort: z.enum(["popular", "trending", "recent"]).optional(),
4200
4288
  });
@@ -4220,6 +4308,17 @@ export const zRegistryBlueprintGetPath = z.object({
4220
4308
  * Public blueprint view
4221
4309
  */
4222
4310
  export const zRegistryBlueprintGetResponse = zBlueprintPublicView;
4311
+ export const zRegistryPublisherGetPath = z.object({
4312
+ slug: z
4313
+ .string()
4314
+ .min(1)
4315
+ .max(128)
4316
+ .regex(/^[a-z0-9-]+$/),
4317
+ });
4318
+ /**
4319
+ * Public publisher view
4320
+ */
4321
+ export const zRegistryPublisherGetResponse = zPublisherPublicView;
4223
4322
  export const zRegistryReplayGetPath = z.object({
4224
4323
  slug: z
4225
4324
  .string()