@renai-labs/sdk 0.1.21 → 0.1.23

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,21 +76,6 @@ export const zReplayPublicView = z.object({
76
76
  session: zReplayPublicSession,
77
77
  messages: z.array(zReplayMessage),
78
78
  });
79
- export const zPublisherLink = z.object({
80
- label: z.string().min(1),
81
- href: z.url(),
82
- });
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),
93
- });
94
79
  export const zSpecPublicTriggerEntry = z.object({
95
80
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
96
81
  ref: z
@@ -216,6 +201,21 @@ export const zSpecPublic = z.object({
216
201
  })
217
202
  .optional(),
218
203
  });
204
+ export const zPublisherLink = z.object({
205
+ label: z.string().min(1),
206
+ href: z.url(),
207
+ });
208
+ export const zPublisherPublicView = z.object({
209
+ id: z.string(),
210
+ slug: z.string(),
211
+ handle: z.string(),
212
+ name: z.string(),
213
+ description: z.string().nullable(),
214
+ avatar: z.string().nullable(),
215
+ url: z.string().nullable(),
216
+ isVerified: z.boolean(),
217
+ links: z.array(zPublisherLink),
218
+ });
219
219
  export const zBlueprintOutcome = z.object({
220
220
  title: z.string().min(1),
221
221
  description: z.string().min(1),
@@ -244,21 +244,96 @@ export const zBlueprintPublicView = z.object({
244
244
  websiteMetadata: zWebsiteMetadata.nullable(),
245
245
  pageContent: zBlueprintPageContent.nullable(),
246
246
  publisherId: z.string(),
247
+ publisher: zPublisherPublicView.nullish().default(null),
247
248
  template: zSpecPublic,
248
249
  replays: z.array(z.string()),
249
250
  });
250
- export const zRequiredCredential = z.object({
251
+ export const zBlueprintPublicListItem = z.object({
252
+ id: z.string(),
253
+ slug: z.string(),
254
+ name: z.string(),
255
+ description: z.string().nullable(),
256
+ websiteMetadata: zWebsiteMetadata.nullable(),
257
+ publisherId: z.string().nullable(),
258
+ publisher: zPublisherPublicView.nullish().default(null),
259
+ updatedAt: z.iso
260
+ .datetime()
261
+ .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))$/),
262
+ });
263
+ export const zRequirementWhen = z.object({
251
264
  name: z
252
265
  .string()
253
266
  .min(1)
254
- .max(128)
255
- .regex(/^[A-Z_][A-Z0-9_]*$/),
256
- description: z.string().max(512).optional(),
267
+ .max(64)
268
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
269
+ op: z.enum(["eq", "neq"]),
270
+ value: z.string().max(512),
257
271
  });
272
+ export const zRequiredCredential = z.union([
273
+ z.object({
274
+ kind: z.literal("env").optional().default("env"),
275
+ name: z
276
+ .string()
277
+ .min(1)
278
+ .max(128)
279
+ .regex(/^[A-Z_][A-Z0-9_]*$/),
280
+ description: z.string().max(512).optional(),
281
+ }),
282
+ z.object({
283
+ kind: z.literal("secret"),
284
+ name: z
285
+ .string()
286
+ .min(1)
287
+ .max(64)
288
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
289
+ description: z.string().max(512).optional(),
290
+ }),
291
+ z.object({
292
+ kind: z.literal("oauth_app"),
293
+ name: z.string().min(1).max(128),
294
+ description: z.string().max(512).optional(),
295
+ }),
296
+ z.object({
297
+ kind: z.literal("text"),
298
+ name: z
299
+ .string()
300
+ .min(1)
301
+ .max(64)
302
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
303
+ description: z.string().max(512).optional(),
304
+ message: z.string().min(1).max(512),
305
+ placeholder: z.string().max(256).optional(),
306
+ when: zRequirementWhen.optional(),
307
+ }),
308
+ z.object({
309
+ kind: z.literal("select"),
310
+ name: z
311
+ .string()
312
+ .min(1)
313
+ .max(64)
314
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
315
+ description: z.string().max(512).optional(),
316
+ message: z.string().min(1).max(512),
317
+ options: z
318
+ .array(z.object({
319
+ label: z.string().min(1).max(256),
320
+ value: z.string().max(512),
321
+ hint: z.string().max(256).optional(),
322
+ }))
323
+ .min(1)
324
+ .max(64),
325
+ when: zRequirementWhen.optional(),
326
+ }),
327
+ ]);
258
328
  export const zRepository = z.object({
259
329
  url: z.url().optional(),
260
330
  source: z.string().optional(),
261
331
  });
332
+ export const zMcpTimeout = z.object({
333
+ startup: z.int().gt(0).lte(600000).optional(),
334
+ catalog: z.int().gt(0).lte(600000).optional(),
335
+ execution: z.int().gt(0).lte(600000).optional(),
336
+ });
262
337
  export const zAgentLatestVersion = z.object({
263
338
  id: z.string(),
264
339
  agentId: z.string(),
@@ -286,16 +361,34 @@ export const zAgentLatestVersion = z.object({
286
361
  }),
287
362
  })),
288
363
  });
289
- export const zOAuthStartInput = z.object({
364
+ export const zOAuthSessionStatus = z.object({
365
+ id: z.string(),
366
+ status: z.enum(["pending", "complete", "failed", "expired"]),
367
+ mcpId: z.string().nullable(),
368
+ credentialId: z.string().nullable(),
369
+ failureReason: z.string().nullable(),
370
+ expiresAt: z.iso
371
+ .datetime()
372
+ .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))$/),
373
+ });
374
+ /**
375
+ * Start 'Sign in with X' for an MCP. Needs a human with a browser: unless alreadyConnected, hand the returned authorizationUrl to the user and poll the session until it is complete, failed, or expired.
376
+ */
377
+ export const zOAuthConnectBody = z.object({
290
378
  mcpId: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
291
379
  scope: z.string().optional(),
292
- callbackUrl: z.url().optional(),
293
- });
294
- export const zOAuthStartResult = z.object({
295
- authorizationUrl: z.string(),
296
- sessionId: z.string(),
297
- state: z.string(),
298
380
  });
381
+ export const zOAuthConnectResult = z.union([
382
+ z.object({
383
+ alreadyConnected: z.literal(true),
384
+ credentialId: z.string(),
385
+ }),
386
+ z.object({
387
+ alreadyConnected: z.literal(false),
388
+ authorizationUrl: z.string(),
389
+ sessionId: z.string(),
390
+ }),
391
+ ]);
299
392
  export const zCredentialTransferInput = z.object({
300
393
  targetVaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
301
394
  mode: z.enum(["copy", "move"]).optional().default("copy"),
@@ -317,6 +410,23 @@ export const zCredentialAuthPublic = z.union([
317
410
  resource: z.string().optional(),
318
411
  })
319
412
  .nullish(),
413
+ profile: z
414
+ .union([
415
+ z.object({
416
+ service: z.literal("github"),
417
+ id: z.number(),
418
+ login: z.string(),
419
+ name: z.string().nullable(),
420
+ }),
421
+ z.object({
422
+ service: z.literal("google_workspace"),
423
+ sub: z.string(),
424
+ email: z.string(),
425
+ name: z.string().nullable(),
426
+ hd: z.string().nullable(),
427
+ }),
428
+ ])
429
+ .nullish(),
320
430
  }),
321
431
  z.object({
322
432
  type: z.literal("env"),
@@ -330,12 +440,17 @@ export const zCredentialAuthPublic = z.union([
330
440
  provider: z.enum(["composio"]),
331
441
  userId: z.string(),
332
442
  }),
443
+ z.object({
444
+ type: z.literal("custom"),
445
+ fieldNames: z.array(z.string()),
446
+ }),
333
447
  ]);
334
448
  export const zCredential = z.object({
335
449
  id: z.string(),
336
450
  vaultId: z.string(),
337
451
  name: z.string(),
338
452
  mcpId: z.string().nullable(),
453
+ oauthAppId: z.string().nullable(),
339
454
  provider: z.enum(["github", "google_workspace"]).nullable(),
340
455
  label: z.string().nullable(),
341
456
  keyPreview: z.string().nullable(),
@@ -346,17 +461,16 @@ export const zCredential = z.object({
346
461
  updatedAt: z.iso
347
462
  .datetime()
348
463
  .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
464
  });
354
465
  export const zCredentialTransferResult = z.object({
355
466
  target: zCredential,
356
467
  sourceCredentialId: z.string(),
357
- sourceArchived: z.boolean(),
468
+ sourceDeleted: z.boolean(),
358
469
  replacedCredentialId: z.string().nullable(),
359
470
  });
471
+ /**
472
+ * Rotate the secret in place. The kind (bearer/oauth/env/basic) cannot change. Replacing an OAuth token without its renewal info (refresh token + token endpoint) disables automatic renewal.
473
+ */
360
474
  export const zCredentialAuth = z.union([
361
475
  z.object({
362
476
  type: z.literal("bearer"),
@@ -410,24 +524,113 @@ export const zCredentialAuth = z.union([
410
524
  userId: z.string(),
411
525
  url: z.url(),
412
526
  }),
527
+ z.object({
528
+ type: z.literal("custom"),
529
+ fields: z.record(z.string(), z.string().max(4096)),
530
+ }),
413
531
  ]);
414
- export const zVault = z.object({
532
+ export const zCredentialCreateAuth = z.union([
533
+ z.object({
534
+ type: z.literal("bearer"),
535
+ token: z.string(),
536
+ }),
537
+ z.object({
538
+ type: z.literal("oauth"),
539
+ accessToken: z.string(),
540
+ expiresAt: z.string().nullish(),
541
+ refresh: z
542
+ .object({
543
+ clientId: z.string(),
544
+ refreshToken: z.string(),
545
+ clientSecret: z.string().optional(),
546
+ tokenEndpoint: z.string().optional(),
547
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
548
+ scope: z.string().optional(),
549
+ resource: z.string().optional(),
550
+ })
551
+ .nullish(),
552
+ profile: z
553
+ .union([
554
+ z.object({
555
+ service: z.literal("github"),
556
+ id: z.number(),
557
+ login: z.string(),
558
+ name: z.string().nullable(),
559
+ }),
560
+ z.object({
561
+ service: z.literal("google_workspace"),
562
+ sub: z.string(),
563
+ email: z.string(),
564
+ name: z.string().nullable(),
565
+ hd: z.string().nullable(),
566
+ }),
567
+ ])
568
+ .nullish(),
569
+ }),
570
+ z.object({
571
+ type: z.literal("env"),
572
+ value: z.string(),
573
+ }),
574
+ z.object({
575
+ type: z.literal("basic"),
576
+ username: z.string(),
577
+ password: z.string(),
578
+ }),
579
+ z.object({
580
+ type: z.literal("custom"),
581
+ fields: z.record(z.string(), z.string().max(4096)),
582
+ }),
583
+ ]);
584
+ /**
585
+ * Create a credential in one of two slots. Adding to a slot that is already filled replaces it in place (that is what 'Reconnect' does). Labels double as environment-variable names and must be unique per vault.
586
+ */
587
+ export const zCreateCredentialBody = z.union([
588
+ z.object({
589
+ slot: z.literal("mcp"),
590
+ mcpId: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
591
+ name: z.string().min(1).max(256),
592
+ auth: zCredentialCreateAuth,
593
+ }),
594
+ z.object({
595
+ slot: z.literal("env"),
596
+ label: z
597
+ .string()
598
+ .min(1)
599
+ .max(128)
600
+ .regex(/^[A-Z_][A-Z0-9_]*$/),
601
+ name: z.string().min(1).max(256),
602
+ auth: zCredentialCreateAuth,
603
+ }),
604
+ ]);
605
+ export const zVaultDetail = z.object({
415
606
  id: z.string(),
416
607
  name: z.string(),
417
608
  description: z.string().nullable(),
418
- isDefault: z.boolean(),
419
609
  orgId: z.string(),
420
610
  userId: z.string().nullable(),
611
+ podId: z.string().nullable(),
421
612
  createdAt: z.iso
422
613
  .datetime()
423
614
  .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))$/),
424
615
  updatedAt: z.iso
425
616
  .datetime()
426
617
  .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))$/),
427
- archivedAt: z.iso
618
+ tier: z.enum(["org", "pod", "user"]),
619
+ credentialLimit: z.int().gte(-9007199254740991).lte(9007199254740991),
620
+ });
621
+ export const zVault = z.object({
622
+ id: z.string(),
623
+ name: z.string(),
624
+ description: z.string().nullable(),
625
+ orgId: z.string(),
626
+ userId: z.string().nullable(),
627
+ podId: z.string().nullable(),
628
+ createdAt: z.iso
428
629
  .datetime()
429
- .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))$/)
430
- .nullable(),
630
+ .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))$/),
631
+ updatedAt: z.iso
632
+ .datetime()
633
+ .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))$/),
431
634
  });
432
635
  export const zLinearMapping = z.object({
433
636
  id: z.string(),
@@ -612,6 +815,46 @@ export const zWebhookTriggerCreateResult = z.object({
612
815
  trigger: zWebhookTrigger,
613
816
  plaintextSecret: z.string().nullable(),
614
817
  });
818
+ export const zCronTriggerDetail = z.object({
819
+ id: z.string(),
820
+ projectId: z.string(),
821
+ projectAgentId: z.string().nullable(),
822
+ senderUserId: z.string(),
823
+ inputMessage: z.string(),
824
+ schedule: z.string(),
825
+ timezone: z.string().nullable(),
826
+ until: z.iso
827
+ .datetime()
828
+ .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))$/)
829
+ .nullable(),
830
+ isEnabled: z.boolean(),
831
+ syncedAt: z.iso
832
+ .datetime()
833
+ .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))$/)
834
+ .nullable(),
835
+ createdAt: z.iso
836
+ .datetime()
837
+ .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))$/),
838
+ updatedAt: z.iso
839
+ .datetime()
840
+ .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))$/),
841
+ archivedAt: z.iso
842
+ .datetime()
843
+ .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))$/)
844
+ .nullable(),
845
+ lastRun: z
846
+ .object({
847
+ at: z.iso
848
+ .datetime()
849
+ .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))$/),
850
+ status: z.string(),
851
+ })
852
+ .nullable(),
853
+ nextRunAt: z.iso
854
+ .datetime()
855
+ .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))$/)
856
+ .nullable(),
857
+ });
615
858
  export const zCronTrigger = z.object({
616
859
  id: z.string(),
617
860
  projectId: z.string(),
@@ -780,6 +1023,22 @@ export const zSkillVersionFiles = z.object({
780
1023
  contentBase64: z.string(),
781
1024
  })),
782
1025
  });
1026
+ export const zSkillRequiredCredential = z.union([
1027
+ z.object({
1028
+ kind: z.literal("env").optional().default("env"),
1029
+ name: z
1030
+ .string()
1031
+ .min(1)
1032
+ .max(128)
1033
+ .regex(/^[A-Z_][A-Z0-9_]*$/),
1034
+ description: z.string().max(512).optional(),
1035
+ }),
1036
+ z.object({
1037
+ kind: z.literal("oauth_app"),
1038
+ name: z.string().min(1).max(128),
1039
+ description: z.string().max(512).optional(),
1040
+ }),
1041
+ ]);
783
1042
  export const zSkillVersion = z.object({
784
1043
  id: z.string(),
785
1044
  skillId: z.string(),
@@ -804,7 +1063,7 @@ export const zSkillVersion = z.object({
804
1063
  path: z.string().optional(),
805
1064
  }),
806
1065
  ]),
807
- requiredCredentials: z.array(zRequiredCredential),
1066
+ requiredCredentials: z.array(zSkillRequiredCredential),
808
1067
  releaseNotes: z.string().nullable(),
809
1068
  });
810
1069
  export const zSkillArchiveResult = z.object({
@@ -841,6 +1100,7 @@ export const zSkillArchiveResult = z.object({
841
1100
  .nullable(),
842
1101
  deprecationMessage: z.string().nullable(),
843
1102
  tags: z.array(z.string()).optional().default([]),
1103
+ publisher: zPublisherPublicView.nullish().default(null),
844
1104
  agentCount: z.int().gte(-9007199254740991).lte(9007199254740991),
845
1105
  projectCount: z.int().gte(-9007199254740991).lte(9007199254740991),
846
1106
  });
@@ -878,6 +1138,7 @@ export const zSkill = z.object({
878
1138
  .nullable(),
879
1139
  deprecationMessage: z.string().nullable(),
880
1140
  tags: z.array(z.string()).optional().default([]),
1141
+ publisher: zPublisherPublicView.nullish().default(null),
881
1142
  });
882
1143
  export const zSessionVolumeRef = z.object({
883
1144
  kind: z.enum(["outputs", "uploads"]),
@@ -902,61 +1163,6 @@ export const zSessionFilesPresignUploadResponse = z.object({
902
1163
  .datetime()
903
1164
  .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))$/),
904
1165
  });
905
- export const zAuthRequirementEnvSource = z.object({
906
- kind: z.enum(["skill", "mcp"]),
907
- id: z.string(),
908
- name: z.string(),
909
- });
910
- export const zAuthRequirementEnv = z.object({
911
- name: z
912
- .string()
913
- .min(1)
914
- .max(128)
915
- .regex(/^[A-Z_][A-Z0-9_]*$/),
916
- description: z.string().max(512).optional(),
917
- satisfied: z.boolean(),
918
- neededBy: z.array(zAuthRequirementEnvSource),
919
- });
920
- export const zMcpAuthConfig = z.union([
921
- z.object({
922
- type: z.literal("oauth"),
923
- scopes: z.array(z.string()).optional(),
924
- tokenEndpoint: z.string().optional(),
925
- authorizationEndpoint: z.string().optional(),
926
- tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
927
- }),
928
- z.object({
929
- type: z.literal("api_key"),
930
- headerName: z.string().optional(),
931
- queryParam: z.string().optional(),
932
- }),
933
- z.object({
934
- type: z.literal("basic"),
935
- }),
936
- z.object({
937
- type: z.literal("none"),
938
- }),
939
- z.object({
940
- type: z.literal("mcp_provider"),
941
- provider: z.enum(["composio"]),
942
- toolkit: z.string(),
943
- authConfigId: z.string(),
944
- }),
945
- ]);
946
- export const zAuthRequirementMcp = z.object({
947
- mcpId: z.string(),
948
- slug: z.string(),
949
- name: z.string(),
950
- icon: z.string().nullable(),
951
- authType: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]),
952
- authConfig: zMcpAuthConfig.nullable(),
953
- satisfied: z.boolean(),
954
- neededByAgentIds: z.array(z.string()),
955
- });
956
- export const zAuthRequirements = z.object({
957
- mcps: z.array(zAuthRequirementMcp),
958
- envs: z.array(zAuthRequirementEnv),
959
- });
960
1166
  export const zSessionTracesResponse = z.object({
961
1167
  configured: z.boolean(),
962
1168
  traces: z.array(z.record(z.string(), z.unknown())),
@@ -1031,6 +1237,8 @@ export const zOpencodeSession = z.object({
1031
1237
  });
1032
1238
  export const zSessionCreateStatus = z.union([
1033
1239
  z.object({
1240
+ podId: z.string(),
1241
+ projectId: z.string().nullable(),
1034
1242
  status: z.literal("pending"),
1035
1243
  phase: z.enum([
1036
1244
  "waiting-sandbox",
@@ -1043,10 +1251,14 @@ export const zSessionCreateStatus = z.union([
1043
1251
  ]),
1044
1252
  }),
1045
1253
  z.object({
1254
+ podId: z.string(),
1255
+ projectId: z.string().nullable(),
1046
1256
  status: z.literal("ready"),
1047
1257
  sessionId: z.string(),
1048
1258
  }),
1049
1259
  z.object({
1260
+ podId: z.string(),
1261
+ projectId: z.string().nullable(),
1050
1262
  status: z.literal("failed"),
1051
1263
  reason: z.string(),
1052
1264
  }),
@@ -1055,6 +1267,9 @@ export const zSessionCreateJob = z.object({
1055
1267
  jobId: z.string().regex(/^sjob_[0-9A-HJKMNP-TV-Z]{26}$/),
1056
1268
  status: z.literal("pending"),
1057
1269
  });
1270
+ export const zResourceIconUpload = z.object({
1271
+ url: z.url(),
1272
+ });
1058
1273
  export const zReplay = z.object({
1059
1274
  id: z.string(),
1060
1275
  orgId: z.string(),
@@ -1190,6 +1405,7 @@ export const zProject = z.object({
1190
1405
  userId: z.string().nullable(),
1191
1406
  podId: z.string(),
1192
1407
  name: z.string(),
1408
+ icon: z.string().nullable(),
1193
1409
  description: z.string().nullable(),
1194
1410
  slug: z.string(),
1195
1411
  defaultModel: z.string().nullable(),
@@ -1208,12 +1424,57 @@ export const zProject = z.object({
1208
1424
  .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))$/)
1209
1425
  .nullable(),
1210
1426
  });
1427
+ /**
1428
+ * An artifact: a static site an agent built in its pod, hosted at a URL.
1429
+ */
1430
+ export const zArtifact = z.object({
1431
+ id: z.string(),
1432
+ orgId: z.string(),
1433
+ podId: z.string(),
1434
+ sourceSessionId: z.string().nullable(),
1435
+ slug: z.string(),
1436
+ title: z.string(),
1437
+ description: z.string(),
1438
+ shareToken: z.string(),
1439
+ createdAt: z.iso
1440
+ .datetime()
1441
+ .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))$/),
1442
+ updatedAt: z.iso
1443
+ .datetime()
1444
+ .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))$/),
1445
+ archivedAt: z.iso
1446
+ .datetime()
1447
+ .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))$/)
1448
+ .nullable(),
1449
+ url: z.url(),
1450
+ });
1451
+ export const zPodDatabase = z.object({
1452
+ id: z.string(),
1453
+ podId: z.string(),
1454
+ orgId: z.string(),
1455
+ userId: z.string().nullable(),
1456
+ slug: z.string(),
1457
+ name: z.string(),
1458
+ description: z.string(),
1459
+ createdAt: z.iso
1460
+ .datetime()
1461
+ .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))$/),
1462
+ updatedAt: z.iso
1463
+ .datetime()
1464
+ .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))$/),
1465
+ archivedAt: z.iso
1466
+ .datetime()
1467
+ .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))$/)
1468
+ .nullable(),
1469
+ });
1211
1470
  export const zSandbox = z.object({
1212
1471
  id: z.string(),
1213
1472
  orgId: z.string(),
1214
1473
  userId: z.string().nullable(),
1215
1474
  providerId: z.string(),
1216
1475
  providerSandboxId: z.string().nullable(),
1476
+ templateRef: z.string().nullable(),
1477
+ buildId: z.string().nullable(),
1217
1478
  internalHost: z.string().nullable(),
1218
1479
  publicHost: z.string().nullable(),
1219
1480
  createdAt: z.iso
@@ -1229,41 +1490,193 @@ export const zSandbox = z.object({
1229
1490
  });
1230
1491
  export const zPodSandboxStatusResponse = z.union([
1231
1492
  z.object({
1232
- status: z.literal("provisioning"),
1233
- workflowId: z.string(),
1234
- phase: z.enum(["loading", "resuming", "provisioning", "bootstrapping", "finalizing"]),
1493
+ status: z.literal("provisioning"),
1494
+ workflowId: z.string(),
1495
+ phase: z.enum(["loading", "resuming", "provisioning", "bootstrapping", "finalizing"]),
1496
+ }),
1497
+ z.object({
1498
+ status: z.literal("ready"),
1499
+ sandbox: zSandbox,
1500
+ serverPassword: z.string(),
1501
+ }),
1502
+ z.object({
1503
+ status: z.literal("absent"),
1504
+ }),
1505
+ z.object({
1506
+ status: z.literal("failed"),
1507
+ reason: z.string(),
1508
+ }),
1509
+ ]);
1510
+ export const zPodSandboxTeardownResponse = z.object({
1511
+ status: z.enum(["destroyed", "absent"]),
1512
+ });
1513
+ export const zPodSandboxProvisionResponse = z.object({
1514
+ workflowId: z.string(),
1515
+ status: z.literal("provisioning"),
1516
+ });
1517
+ export const zAuthRequirementEnvSource = z.object({
1518
+ kind: z.enum(["skill", "mcp"]),
1519
+ id: z.string(),
1520
+ name: z.string(),
1521
+ });
1522
+ export const zAuthRequirementEnv = z.union([
1523
+ z.object({
1524
+ kind: z.literal("env").optional().default("env"),
1525
+ name: z
1526
+ .string()
1527
+ .min(1)
1528
+ .max(128)
1529
+ .regex(/^[A-Z_][A-Z0-9_]*$/),
1530
+ description: z.string().max(512).optional(),
1531
+ satisfied: z.boolean(),
1532
+ neededBy: z.array(zAuthRequirementEnvSource),
1533
+ }),
1534
+ z.object({
1535
+ kind: z.literal("secret"),
1536
+ name: z
1537
+ .string()
1538
+ .min(1)
1539
+ .max(64)
1540
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1541
+ description: z.string().max(512).optional(),
1542
+ satisfied: z.boolean(),
1543
+ neededBy: z.array(zAuthRequirementEnvSource),
1235
1544
  }),
1236
1545
  z.object({
1237
- status: z.literal("ready"),
1238
- sandbox: zSandbox,
1239
- serverPassword: z.string(),
1546
+ kind: z.literal("oauth_app"),
1547
+ name: z.string().min(1).max(128),
1548
+ description: z.string().max(512).optional(),
1549
+ satisfied: z.boolean(),
1550
+ neededBy: z.array(zAuthRequirementEnvSource),
1240
1551
  }),
1241
1552
  z.object({
1242
- status: z.literal("absent"),
1553
+ kind: z.literal("text"),
1554
+ name: z
1555
+ .string()
1556
+ .min(1)
1557
+ .max(64)
1558
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1559
+ description: z.string().max(512).optional(),
1560
+ message: z.string().min(1).max(512),
1561
+ placeholder: z.string().max(256).optional(),
1562
+ when: zRequirementWhen.optional(),
1563
+ satisfied: z.boolean(),
1564
+ neededBy: z.array(zAuthRequirementEnvSource),
1243
1565
  }),
1244
1566
  z.object({
1245
- status: z.literal("failed"),
1246
- reason: z.string(),
1567
+ kind: z.literal("select"),
1568
+ name: z
1569
+ .string()
1570
+ .min(1)
1571
+ .max(64)
1572
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1573
+ description: z.string().max(512).optional(),
1574
+ message: z.string().min(1).max(512),
1575
+ options: z
1576
+ .array(z.object({
1577
+ label: z.string().min(1).max(256),
1578
+ value: z.string().max(512),
1579
+ hint: z.string().max(256).optional(),
1580
+ }))
1581
+ .min(1)
1582
+ .max(64),
1583
+ when: zRequirementWhen.optional(),
1584
+ satisfied: z.boolean(),
1585
+ neededBy: z.array(zAuthRequirementEnvSource),
1247
1586
  }),
1248
1587
  ]);
1249
- export const zPodSandboxTeardownResponse = z.object({
1250
- status: z.enum(["destroyed", "absent"]),
1588
+ export const zMcpAuthConfig = z.union([
1589
+ z.object({
1590
+ type: z.literal("oauth"),
1591
+ scopes: z.array(z.string().min(1).max(256)).optional(),
1592
+ tokenEndpoint: z.string().optional(),
1593
+ authorizationEndpoint: z.string().optional(),
1594
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
1595
+ oauthAppName: z.string().min(1).max(128).optional(),
1596
+ }),
1597
+ z.object({
1598
+ type: z.literal("header"),
1599
+ headers: z
1600
+ .array(z.object({
1601
+ name: z
1602
+ .string()
1603
+ .min(1)
1604
+ .max(128)
1605
+ .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/),
1606
+ template: z.string().min(1).max(512),
1607
+ }))
1608
+ .max(8)
1609
+ .optional()
1610
+ .default([]),
1611
+ queryParams: z
1612
+ .array(z.object({
1613
+ name: z
1614
+ .string()
1615
+ .min(1)
1616
+ .max(128)
1617
+ .regex(/^[A-Za-z0-9._~-]+$/),
1618
+ template: z.string().min(1).max(512),
1619
+ }))
1620
+ .max(8)
1621
+ .optional()
1622
+ .default([]),
1623
+ }),
1624
+ z.object({
1625
+ type: z.literal("api_key"),
1626
+ headerName: z
1627
+ .string()
1628
+ .min(1)
1629
+ .max(128)
1630
+ .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/)
1631
+ .optional(),
1632
+ queryParam: z
1633
+ .string()
1634
+ .min(1)
1635
+ .max(128)
1636
+ .regex(/^[A-Za-z0-9._~-]+$/)
1637
+ .optional(),
1638
+ }),
1639
+ z.object({
1640
+ type: z.literal("basic"),
1641
+ }),
1642
+ z.object({
1643
+ type: z.literal("none"),
1644
+ }),
1645
+ z.object({
1646
+ type: z.literal("mcp_provider"),
1647
+ provider: z.enum(["composio"]),
1648
+ toolkit: z.string(),
1649
+ authConfigId: z.string(),
1650
+ }),
1651
+ ]);
1652
+ export const zAuthRequirementMcp = z.object({
1653
+ mcpId: z.string(),
1654
+ slug: z.string(),
1655
+ name: z.string(),
1656
+ icon: z.string().nullable(),
1657
+ authType: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]),
1658
+ authConfig: zMcpAuthConfig.nullable(),
1659
+ satisfied: z.boolean(),
1660
+ neededByAgentIds: z.array(z.string()),
1251
1661
  });
1252
- export const zPodSandboxProvisionResponse = z.object({
1253
- workflowId: z.string(),
1254
- status: z.literal("provisioning"),
1662
+ export const zAuthRequirements = z.object({
1663
+ mcps: z.array(zAuthRequirementMcp),
1664
+ envs: z.array(zAuthRequirementEnv),
1255
1665
  });
1256
- export const zPodVault = z.object({
1257
- id: z.string(),
1258
- podId: z.string(),
1666
+ export const zPodResolvedCredential = z.object({
1667
+ credentialId: z.string(),
1668
+ name: z.string(),
1259
1669
  vaultId: z.string(),
1260
- priority: z.int().gte(-2147483648).lte(2147483647),
1261
- createdAt: z.iso
1262
- .datetime()
1263
- .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))$/),
1264
- updatedAt: z.iso
1265
- .datetime()
1266
- .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))$/),
1670
+ vaultName: z.string(),
1671
+ tier: z.enum(["org", "pod", "user"]),
1672
+ sourcePodId: z.string().nullable(),
1673
+ anchor: z.string(),
1674
+ keyPreview: z.string().nullable(),
1675
+ shadowed: z.boolean(),
1676
+ });
1677
+ export const zPodCredentials = z.object({
1678
+ writeVaultId: z.string().nullable(),
1679
+ credentials: z.array(zPodResolvedCredential),
1267
1680
  });
1268
1681
  export const zPodMember = z.object({
1269
1682
  id: z.string(),
@@ -1277,9 +1690,11 @@ export const zPodMember = z.object({
1277
1690
  .datetime()
1278
1691
  .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))$/),
1279
1692
  });
1693
+ export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
1280
1694
  export const zPod = z.object({
1281
1695
  id: z.string(),
1282
1696
  name: z.string(),
1697
+ icon: z.string().nullable(),
1283
1698
  slug: z.string(),
1284
1699
  description: z.string().nullable(),
1285
1700
  isPrivate: z.boolean(),
@@ -1287,6 +1702,7 @@ export const zPod = z.object({
1287
1702
  defaultModel: z.string().nullable(),
1288
1703
  instructions: z.string(),
1289
1704
  environmentId: z.string().nullable(),
1705
+ presetTemplate: zPresetTemplate,
1290
1706
  orgId: z.string(),
1291
1707
  userId: z.string().nullable(),
1292
1708
  manifestUpdatedAt: z.iso
@@ -1383,6 +1799,9 @@ export const zMemoryStoreFile = z.object({
1383
1799
  .optional(),
1384
1800
  contentSha256: z.string().optional(),
1385
1801
  });
1802
+ /**
1803
+ * A memory store: a named bucket of agent knowledge that persists between sessions, mounted at its mountPath.
1804
+ */
1386
1805
  export const zMemoryStore = z.object({
1387
1806
  id: z.string(),
1388
1807
  name: z.string(),
@@ -1401,6 +1820,7 @@ export const zMemoryStore = z.object({
1401
1820
  .datetime()
1402
1821
  .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))$/)
1403
1822
  .nullable(),
1823
+ mountPath: z.string(),
1404
1824
  });
1405
1825
  export const zOnboardingComplete = z.object({
1406
1826
  onboarding: z.object({
@@ -1435,31 +1855,17 @@ export const zMe = z.object({
1435
1855
  }),
1436
1856
  method: z.enum(["session", "pat", "sandbox"]),
1437
1857
  });
1438
- export const zOAuthSessionStatus = z.object({
1858
+ export const zSearchResult = z.object({
1439
1859
  id: z.string(),
1440
- status: z.enum(["pending", "active", "failed", "expired"]),
1441
- mcpId: z.string().nullable(),
1442
- credentialId: z.string().nullable(),
1443
- failureReason: z.string().nullable(),
1444
- expiresAt: z.iso
1860
+ slug: z.string(),
1861
+ name: z.string(),
1862
+ description: z.string().nullable(),
1863
+ icon: z.string().nullable(),
1864
+ source: z.enum(["user", "org", "registry"]),
1865
+ updatedAt: z.iso
1445
1866
  .datetime()
1446
1867
  .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))$/),
1447
1868
  });
1448
- export const zMcpOAuthConnectBody = z.object({
1449
- scope: z.string().optional(),
1450
- callbackUrl: z.url().optional(),
1451
- });
1452
- export const zMcpOAuthConnectResult = z.union([
1453
- z.object({
1454
- alreadyConnected: z.literal(true),
1455
- credentialId: z.string(),
1456
- }),
1457
- z.object({
1458
- alreadyConnected: z.literal(false),
1459
- authorizationUrl: z.string(),
1460
- sessionId: z.string(),
1461
- }),
1462
- ]);
1463
1869
  export const zMcp = z.object({
1464
1870
  id: z.string(),
1465
1871
  slug: z.string(),
@@ -1469,9 +1875,10 @@ export const zMcp = z.object({
1469
1875
  mcpServerUrl: z.string().nullable(),
1470
1876
  docUrl: z.string().nullable(),
1471
1877
  type: z.enum(["remote", "local"]),
1472
- transport: z.enum(["streamable-http", "sse", "stdio"]),
1473
1878
  command: z.string().nullable(),
1474
1879
  args: z.array(z.string()),
1880
+ cwd: z.string().nullable(),
1881
+ timeout: zMcpTimeout.nullable(),
1475
1882
  version: z.string().nullable(),
1476
1883
  repository: zRepository.nullable(),
1477
1884
  tools: z.array(z.string()),
@@ -1504,6 +1911,67 @@ export const zMcp = z.object({
1504
1911
  .nullable(),
1505
1912
  deprecationMessage: z.string().nullable(),
1506
1913
  tags: z.array(z.string()).optional().default([]),
1914
+ publisher: zPublisherPublicView.nullish().default(null),
1915
+ });
1916
+ export const zOAuthAppUsage = z.object({
1917
+ mcpIds: z.array(z.string()),
1918
+ });
1919
+ export const zOAuthAuthorizeParams = z.record(z.string(), z.string().max(512));
1920
+ export const zOAuthAppUpdateInput = z.object({
1921
+ name: z.string().min(1).max(128).optional(),
1922
+ clientId: z.string().min(1).max(512).optional(),
1923
+ clientSecret: z.string().min(1).max(2048).nullish(),
1924
+ scopes: z.array(z.string().min(1)).max(64).optional(),
1925
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
1926
+ resource: z.string().max(512).nullish(),
1927
+ authorizeParams: zOAuthAuthorizeParams.optional(),
1928
+ pkce: z.boolean().optional(),
1929
+ discovery: z.enum(["static", "mcp"]).optional(),
1930
+ authorizationEndpoint: z.url().nullish(),
1931
+ tokenEndpoint: z.url().nullish(),
1932
+ });
1933
+ export const zOAuthAppCreateInput = z.object({
1934
+ name: z.string().min(1).max(128),
1935
+ clientId: z.string().min(1).max(512),
1936
+ clientSecret: z.string().min(1).max(2048).nullish().default(null),
1937
+ scopes: z.array(z.string().min(1)).max(64).optional().default([]),
1938
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional().default("none"),
1939
+ resource: z.string().max(512).nullish().default(null),
1940
+ authorizeParams: zOAuthAuthorizeParams.optional(),
1941
+ pkce: z.boolean().optional().default(true),
1942
+ discovery: z.enum(["static", "mcp"]).optional().default("mcp"),
1943
+ authorizationEndpoint: z.url().nullish().default(null),
1944
+ tokenEndpoint: z.url().nullish().default(null),
1945
+ });
1946
+ export const zOAuthAppRedirectUri = z.object({
1947
+ redirectUri: z.url(),
1948
+ });
1949
+ export const zOAuthApp = z.object({
1950
+ id: z.string(),
1951
+ orgId: z.string(),
1952
+ configuredById: z.string().nullable(),
1953
+ name: z.string(),
1954
+ provider: z.string().nullable(),
1955
+ clientId: z.string(),
1956
+ scopes: z.array(z.string()),
1957
+ discovery: z.enum(["static", "mcp"]),
1958
+ authorizationEndpoint: z.string().nullable(),
1959
+ tokenEndpoint: z.string().nullable(),
1960
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]),
1961
+ resource: z.string().nullable(),
1962
+ authorizeParams: zOAuthAuthorizeParams,
1963
+ pkce: z.boolean(),
1964
+ createdAt: z.iso
1965
+ .datetime()
1966
+ .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))$/),
1967
+ updatedAt: z.iso
1968
+ .datetime()
1969
+ .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))$/),
1970
+ archivedAt: z.iso
1971
+ .datetime()
1972
+ .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))$/)
1973
+ .nullable(),
1974
+ hasClientSecret: z.boolean(),
1507
1975
  });
1508
1976
  export const zGoogleWorkspaceOAuthStartResult = z.object({
1509
1977
  url: z.url(),
@@ -1576,6 +2044,8 @@ export const zStoreStartUploadResponse = z.object({
1576
2044
  expiresAt: z.iso
1577
2045
  .datetime()
1578
2046
  .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))$/),
2047
+ uploadId: z.string(),
2048
+ status: z.literal("staged"),
1579
2049
  });
1580
2050
  export const zStorePresignResponse = z.object({
1581
2051
  url: z.string(),
@@ -1592,6 +2062,9 @@ export const zFileStoreFile = z.object({
1592
2062
  .optional(),
1593
2063
  contentSha256: z.string().optional(),
1594
2064
  });
2065
+ /**
2066
+ * A file store: a named bucket of user artifacts, mounted into agent workspaces at its mountPath.
2067
+ */
1595
2068
  export const zFileStore = z.object({
1596
2069
  id: z.string(),
1597
2070
  name: z.string(),
@@ -1610,13 +2083,43 @@ export const zFileStore = z.object({
1610
2083
  .datetime()
1611
2084
  .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))$/)
1612
2085
  .nullable(),
2086
+ mountPath: z.string(),
2087
+ });
2088
+ export const zTemplateMemoryMb = z.union([
2089
+ z.literal(1024),
2090
+ z.literal(2048),
2091
+ z.literal(3072),
2092
+ z.literal(4096),
2093
+ z.literal(5120),
2094
+ z.literal(6144),
2095
+ z.literal(7168),
2096
+ z.literal(8192),
2097
+ ]);
2098
+ export const zTemplateCpuCount = z.union([z.literal(1), z.literal(2), z.literal(4), z.literal(6), z.literal(8)]);
2099
+ export const zEnvironmentBuildStatus = z.enum(["queued", "building", "ready", "error"]);
2100
+ export const zEnvironmentBuild = z.object({
2101
+ id: z.string(),
2102
+ environmentId: z.string(),
2103
+ status: zEnvironmentBuildStatus,
2104
+ tag: z.string().nullable(),
2105
+ cpuCount: zTemplateCpuCount,
2106
+ memoryMB: zTemplateMemoryMb,
2107
+ baseRef: z.string(),
2108
+ templateId: z.string().nullable(),
2109
+ buildId: z.string().nullable(),
2110
+ log: z.string(),
2111
+ error: z.string().nullable(),
2112
+ createdAt: z.iso
2113
+ .datetime()
2114
+ .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))$/),
2115
+ updatedAt: z.iso
2116
+ .datetime()
2117
+ .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))$/),
1613
2118
  });
1614
2119
  export const zPackagesConfig = z.object({
1615
2120
  apt: z.array(z.string()).optional(),
1616
2121
  npm: z.array(z.string()).optional(),
1617
2122
  pip: z.array(z.string()).optional(),
1618
- cargo: z.array(z.string()).optional(),
1619
- gem: z.array(z.string()).optional(),
1620
2123
  go: z.array(z.string()).optional(),
1621
2124
  });
1622
2125
  export const zNetworkingConfig = z.union([
@@ -1637,8 +2140,14 @@ export const zEnvironment = z.object({
1637
2140
  orgId: z.string(),
1638
2141
  userId: z.string().nullable(),
1639
2142
  hostingType: z.enum(["cloud"]),
2143
+ cpuCount: zTemplateCpuCount,
2144
+ memoryMB: zTemplateMemoryMb,
2145
+ templateName: z.string().nullable(),
2146
+ tag: z.string().nullable(),
2147
+ currentBuildId: z.string().nullable(),
1640
2148
  networking: zNetworkingConfig,
1641
2149
  packages: zPackagesConfig,
2150
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50),
1642
2151
  createdAt: z.iso
1643
2152
  .datetime()
1644
2153
  .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))$/),
@@ -1711,6 +2220,7 @@ export const zUsageGroup = z.object({
1711
2220
  export const zUsageDailyPoint = z.object({
1712
2221
  date: z.string(),
1713
2222
  credits: z.string(),
2223
+ eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
1714
2224
  });
1715
2225
  export const zUsageBreakdownItem = z.object({
1716
2226
  source: z.string(),
@@ -1957,6 +2467,52 @@ export const zBlueprint = z.object({
1957
2467
  .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))$/)
1958
2468
  .nullable(),
1959
2469
  deprecationMessage: z.string().nullable(),
2470
+ publisher: zPublisherPublicView.nullish().default(null),
2471
+ });
2472
+ export const zAgentVersionArchiveResult = z.object({
2473
+ id: z.string(),
2474
+ agentId: z.string(),
2475
+ version: z.string().regex(/^\d+\.\d+\.\d+$/),
2476
+ createdById: z.string(),
2477
+ createdAt: z.iso
2478
+ .datetime()
2479
+ .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))$/),
2480
+ archivedAt: z.iso
2481
+ .datetime()
2482
+ .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))$/)
2483
+ .nullable(),
2484
+ description: z.string().nullable(),
2485
+ prompt: z.string().nullable(),
2486
+ model: z.string().nullable(),
2487
+ releaseNotes: z.string().nullable(),
2488
+ permission: zPermissionConfig,
2489
+ skills: z
2490
+ .array(z.object({
2491
+ skillId: z.string(),
2492
+ skillVersionId: z.string().nullish().default(null),
2493
+ skill: z.object({
2494
+ id: z.string(),
2495
+ slug: z.string(),
2496
+ name: z.string(),
2497
+ icon: z.string().nullable(),
2498
+ }),
2499
+ }))
2500
+ .optional()
2501
+ .default([]),
2502
+ mcps: z
2503
+ .array(z.object({
2504
+ mcpId: z.string(),
2505
+ mcp: z.object({
2506
+ id: z.string(),
2507
+ slug: z.string(),
2508
+ name: z.string(),
2509
+ icon: z.string().nullable(),
2510
+ }),
2511
+ }))
2512
+ .optional()
2513
+ .default([]),
2514
+ projectCount: z.int().gte(0).lte(9007199254740991),
2515
+ podCount: z.int().gte(0).lte(9007199254740991),
1960
2516
  });
1961
2517
  export const zAgentVersion = z.object({
1962
2518
  id: z.string(),
@@ -2001,16 +2557,37 @@ export const zAgentVersion = z.object({
2001
2557
  .optional()
2002
2558
  .default([]),
2003
2559
  });
2004
- export const zSearchResult = z.object({
2560
+ export const zAgentArchiveResult = z.object({
2005
2561
  id: z.string(),
2006
2562
  slug: z.string(),
2007
2563
  name: z.string(),
2008
- description: z.string().nullable(),
2009
2564
  icon: z.string().nullable(),
2010
- source: z.enum(["user", "org", "registry"]),
2565
+ orgId: z.string(),
2566
+ userId: z.string().nullable(),
2567
+ publisherId: z.string().nullable(),
2568
+ parentId: z.string().nullable(),
2569
+ websiteMetadata: zWebsiteMetadata.nullable(),
2570
+ latestVersionId: z.string().nullable(),
2571
+ createdAt: z.iso
2572
+ .datetime()
2573
+ .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))$/),
2011
2574
  updatedAt: z.iso
2012
2575
  .datetime()
2013
2576
  .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))$/),
2577
+ archivedAt: z.iso
2578
+ .datetime()
2579
+ .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))$/)
2580
+ .nullable(),
2581
+ deprecatedAt: z.iso
2582
+ .datetime()
2583
+ .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))$/)
2584
+ .nullable(),
2585
+ deprecationMessage: z.string().nullable(),
2586
+ tags: z.array(z.string()).optional().default([]),
2587
+ publisher: zPublisherPublicView.nullish().default(null),
2588
+ latestVersion: zAgentLatestVersion.nullish(),
2589
+ projectCount: z.int().gte(0).lte(9007199254740991),
2590
+ podCount: z.int().gte(0).lte(9007199254740991),
2014
2591
  });
2015
2592
  export const zAgent = z.object({
2016
2593
  id: z.string(),
@@ -2039,13 +2616,18 @@ export const zAgent = z.object({
2039
2616
  .nullable(),
2040
2617
  deprecationMessage: z.string().nullable(),
2041
2618
  tags: z.array(z.string()).optional().default([]),
2619
+ publisher: zPublisherPublicView.nullish().default(null),
2042
2620
  latestVersion: zAgentLatestVersion.nullish(),
2043
2621
  });
2044
2622
  export const zAgentListQuery = z.object({
2045
2623
  limit: z.int().gte(1).lte(1000).optional(),
2046
2624
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2047
2625
  includeDeprecated: z.boolean().optional(),
2048
- visibility: z.enum(["private", "org"]).optional(),
2626
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2627
+ query: z.string().optional(),
2628
+ published: z.boolean().optional(),
2629
+ publisherId: z.string().optional(),
2630
+ tagged: z.union([z.string(), z.array(z.string())]).optional(),
2049
2631
  });
2050
2632
  /**
2051
2633
  * List of agents
@@ -2054,61 +2636,42 @@ export const zAgentListResponse = z.array(zAgent);
2054
2636
  export const zAgentCreateBody = z.object({
2055
2637
  name: z.string().min(1).max(256),
2056
2638
  icon: z.string().nullish().default(null),
2057
- tags: z.array(z.string()).optional(),
2058
- visibility: z.enum(["private", "org"]).optional().default("org"),
2639
+ tags: z.array(z.string()).nullish(),
2640
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2059
2641
  version: z
2060
2642
  .union([z.string(), z.enum(["major", "minor", "patch"])])
2061
2643
  .optional()
2062
2644
  .default("patch"),
2063
- description: z.string().optional().default(""),
2064
- prompt: z.string().optional().default(""),
2065
- model: z.string().nullish().default(null),
2645
+ description: z.string().optional(),
2646
+ prompt: z.string().optional(),
2647
+ model: z.string().nullish(),
2066
2648
  permission: zPermissionConfig.optional(),
2067
2649
  skills: z
2068
2650
  .array(z.object({
2069
2651
  skillId: z.string(),
2070
2652
  skillVersionId: z.string().nullish().default(null),
2071
2653
  }))
2072
- .optional()
2073
- .default([]),
2654
+ .optional(),
2074
2655
  mcps: z
2075
2656
  .array(z.object({
2076
2657
  mcpId: z.string(),
2077
2658
  }))
2078
- .optional()
2079
- .default([]),
2659
+ .optional(),
2080
2660
  releaseNotes: z.string().max(4096).optional(),
2081
2661
  });
2082
2662
  /**
2083
2663
  * Created agent
2084
2664
  */
2085
2665
  export const zAgentCreateResponse = zAgent;
2086
- export const zAgentSearchBody = z.object({
2087
- query: z.string().optional(),
2088
- sources: z
2089
- .array(z.enum(["user", "org", "registry"]))
2090
- .min(1)
2091
- .optional()
2092
- .default(["user", "org", "registry"]),
2093
- limit: z.int().gte(1).lte(50).optional().default(20),
2094
- });
2095
- /**
2096
- * Matching agents
2097
- */
2098
- export const zAgentSearchResponse = z.array(zSearchResult);
2099
- export const zAgentGetBySlugPath = z.object({
2100
- slug: z
2101
- .string()
2102
- .min(1)
2103
- .max(128)
2104
- .regex(/^[a-z0-9-]+$/),
2105
- });
2106
- /**
2107
- * Agent details
2108
- */
2109
- export const zAgentGetBySlugResponse = zAgent;
2110
2666
  export const zAgentGetPath = z.object({
2111
- id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2667
+ idOrSlug: z.union([
2668
+ z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2669
+ z
2670
+ .string()
2671
+ .min(1)
2672
+ .max(128)
2673
+ .regex(/^[a-z0-9-]+$/),
2674
+ ]),
2112
2675
  });
2113
2676
  /**
2114
2677
  * Agent details
@@ -2118,7 +2681,7 @@ export const zAgentUpdateBody = z.object({
2118
2681
  name: z.string().optional(),
2119
2682
  icon: z.string().nullish(),
2120
2683
  websiteMetadata: zWebsiteMetadata.nullish(),
2121
- tags: z.array(z.string()).optional(),
2684
+ tags: z.array(z.string()).nullish(),
2122
2685
  });
2123
2686
  export const zAgentUpdatePath = z.object({
2124
2687
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2131,9 +2694,9 @@ export const zAgentArchivePath = z.object({
2131
2694
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2132
2695
  });
2133
2696
  /**
2134
- * Archived agent
2697
+ * Archived agent, with the blast radius (projectCount/podCount) of placements that referenced it.
2135
2698
  */
2136
- export const zAgentArchiveResponse = zAgent;
2699
+ export const zAgentArchiveResponse = zAgentArchiveResult;
2137
2700
  export const zAgentPublishPath = z.object({
2138
2701
  id: z.string().regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/),
2139
2702
  });
@@ -2182,23 +2745,21 @@ export const zAgentVersionCreateBody = z.object({
2182
2745
  .union([z.string(), z.enum(["major", "minor", "patch"])])
2183
2746
  .optional()
2184
2747
  .default("patch"),
2185
- description: z.string().optional().default(""),
2186
- prompt: z.string().optional().default(""),
2187
- model: z.string().nullish().default(null),
2748
+ description: z.string().optional(),
2749
+ prompt: z.string().optional(),
2750
+ model: z.string().nullish(),
2188
2751
  permission: zPermissionConfig.optional(),
2189
2752
  skills: z
2190
2753
  .array(z.object({
2191
2754
  skillId: z.string(),
2192
2755
  skillVersionId: z.string().nullish().default(null),
2193
2756
  }))
2194
- .optional()
2195
- .default([]),
2757
+ .optional(),
2196
2758
  mcps: z
2197
2759
  .array(z.object({
2198
2760
  mcpId: z.string(),
2199
2761
  }))
2200
- .optional()
2201
- .default([]),
2762
+ .optional(),
2202
2763
  releaseNotes: z.string().max(4096).optional(),
2203
2764
  });
2204
2765
  export const zAgentVersionCreatePath = z.object({
@@ -2221,14 +2782,14 @@ export const zAgentVersionArchivePath = z.object({
2221
2782
  version: z.string().min(1).max(32),
2222
2783
  });
2223
2784
  /**
2224
- * Archived agent version
2785
+ * Archived agent version, with the blast radius of the placements it affected.
2225
2786
  */
2226
- export const zAgentVersionArchiveResponse = zAgentVersion;
2787
+ export const zAgentVersionArchiveResponse = zAgentVersionArchiveResult;
2227
2788
  export const zBlueprintListQuery = z.object({
2228
2789
  limit: z.int().gte(1).lte(1000).optional(),
2229
2790
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2230
2791
  includeDeprecated: z.boolean().optional(),
2231
- visibility: z.enum(["private", "org"]).optional(),
2792
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2232
2793
  });
2233
2794
  /**
2234
2795
  * List of blueprints
@@ -2242,7 +2803,7 @@ export const zBlueprintCreateBody = z.object({
2242
2803
  instructions: z.string().optional(),
2243
2804
  initialPrompt: zSpecInitialPrompt.optional(),
2244
2805
  selection: zBlueprintSelection,
2245
- visibility: z.enum(["private", "org"]).optional().default("org"),
2806
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2246
2807
  });
2247
2808
  /**
2248
2809
  * Created blueprint
@@ -2442,7 +3003,7 @@ export const zEnvironmentListQuery = z.object({
2442
3003
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2443
3004
  includeDeprecated: z.boolean().optional(),
2444
3005
  userId: z.string().nullish(),
2445
- visibility: z.enum(["private", "org"]).optional(),
3006
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2446
3007
  });
2447
3008
  /**
2448
3009
  * List of environments
@@ -2454,7 +3015,10 @@ export const zEnvironmentCreateBody = z.object({
2454
3015
  description: z.string().optional().default(""),
2455
3016
  hostingType: z.enum(["cloud"]).optional().default("cloud"),
2456
3017
  packages: zPackagesConfig.optional(),
2457
- visibility: z.enum(["private", "org"]).optional().default("org"),
3018
+ cpuCount: zTemplateCpuCount.optional(),
3019
+ memoryMB: zTemplateMemoryMb.optional(),
3020
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional().default([]),
3021
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2458
3022
  });
2459
3023
  /**
2460
3024
  * Created environment
@@ -2479,6 +3043,9 @@ export const zEnvironmentUpdateBody = z.object({
2479
3043
  description: z.string().optional(),
2480
3044
  networking: zNetworkingConfig.optional(),
2481
3045
  packages: zPackagesConfig.optional(),
3046
+ cpuCount: zTemplateCpuCount.optional(),
3047
+ memoryMB: zTemplateMemoryMb.optional(),
3048
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional(),
2482
3049
  });
2483
3050
  export const zEnvironmentUpdatePath = z.object({
2484
3051
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2487,6 +3054,25 @@ export const zEnvironmentUpdatePath = z.object({
2487
3054
  * Updated environment
2488
3055
  */
2489
3056
  export const zEnvironmentUpdateResponse = zEnvironment;
3057
+ export const zEnvironmentBuildStartPath = z.object({
3058
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
3059
+ });
3060
+ /**
3061
+ * Queued build
3062
+ */
3063
+ export const zEnvironmentBuildStartResponse = zEnvironmentBuild;
3064
+ export const zEnvironmentBuildListPath = z.object({
3065
+ id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
3066
+ });
3067
+ export const zEnvironmentBuildListQuery = z.object({
3068
+ limit: z.int().gte(1).lte(1000).optional(),
3069
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3070
+ includeDeprecated: z.boolean().optional(),
3071
+ });
3072
+ /**
3073
+ * Builds, newest first
3074
+ */
3075
+ export const zEnvironmentBuildListResponse = z.array(zEnvironmentBuild);
2490
3076
  export const zEnvironmentArchivePath = z.object({
2491
3077
  id: z.string().regex(/^env_[0-9A-HJKMNP-TV-Z]{26}$/),
2492
3078
  });
@@ -2500,7 +3086,7 @@ export const zFileStoreListQuery = z.object({
2500
3086
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2501
3087
  includeDeprecated: z.boolean().optional(),
2502
3088
  userId: z.string().nullish(),
2503
- visibility: z.enum(["private", "org"]).optional(),
3089
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2504
3090
  });
2505
3091
  /**
2506
3092
  * List of file stores
@@ -2510,7 +3096,7 @@ export const zFileStoreCreateBody = z.object({
2510
3096
  name: z.string().min(1).max(256),
2511
3097
  description: z.string().optional().default(""),
2512
3098
  isDefault: z.boolean().optional().default(false),
2513
- visibility: z.enum(["private", "org"]).optional().default("org"),
3099
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2514
3100
  });
2515
3101
  /**
2516
3102
  * Created file store
@@ -2520,7 +3106,7 @@ export const zFileStoreGetPath = z.object({
2520
3106
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
2521
3107
  });
2522
3108
  /**
2523
- * File store details
3109
+ * file store details
2524
3110
  */
2525
3111
  export const zFileStoreGetResponse = zFileStore;
2526
3112
  export const zFileStoreUpdateBody = z.object({
@@ -2589,6 +3175,7 @@ export const zFileStoreFilesStartUploadPath = z.object({
2589
3175
  export const zFileStoreFilesStartUploadResponse = zStoreStartUploadResponse;
2590
3176
  export const zFileStoreFilesFinalizeUploadBody = z.object({
2591
3177
  path: z.string().min(1),
3178
+ uploadId: z.string().min(1),
2592
3179
  });
2593
3180
  export const zFileStoreFilesFinalizeUploadPath = z.object({
2594
3181
  id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2597,6 +3184,17 @@ export const zFileStoreFilesFinalizeUploadPath = z.object({
2597
3184
  * Finalized file info
2598
3185
  */
2599
3186
  export const zFileStoreFilesFinalizeUploadResponse = zFileStoreFile;
3187
+ export const zFileStoreFilesWriteContentBody = z.string();
3188
+ export const zFileStoreFilesWriteContentPath = z.object({
3189
+ id: z.string().regex(/^fst_[0-9A-HJKMNP-TV-Z]{26}$/),
3190
+ });
3191
+ export const zFileStoreFilesWriteContentQuery = z.object({
3192
+ path: z.string().min(1),
3193
+ });
3194
+ /**
3195
+ * Written file info
3196
+ */
3197
+ export const zFileStoreFilesWriteContentResponse = zFileStoreFile;
2600
3198
  export const zInvitationPreviewPath = z.object({
2601
3199
  id: z.string().min(1).max(128),
2602
3200
  });
@@ -2627,6 +3225,7 @@ export const zInvitationPreviewResponse = z.object({
2627
3225
  export const zGithubUninstallResponse = z.void();
2628
3226
  export const zGithubInstallQuery = z.object({
2629
3227
  returnTo: z.string().optional(),
3228
+ vaultId: z.string().optional(),
2630
3229
  });
2631
3230
  /**
2632
3231
  * Authorization URL for the user to visit
@@ -2634,6 +3233,7 @@ export const zGithubInstallQuery = z.object({
2634
3233
  export const zGithubInstallResponse = zGithubOAuthStartResult;
2635
3234
  export const zGithubConnectQuery = z.object({
2636
3235
  returnTo: z.string().optional(),
3236
+ vaultId: z.string().optional(),
2637
3237
  });
2638
3238
  /**
2639
3239
  * Authorization URL for the user to visit
@@ -2710,12 +3310,53 @@ export const zGoogleConnectQuery = z.object({
2710
3310
  * Authorization URL for the user to visit
2711
3311
  */
2712
3312
  export const zGoogleConnectResponse = zGoogleWorkspaceOAuthStartResult;
3313
+ /**
3314
+ * OAuth apps
3315
+ */
3316
+ export const zOauthAppListResponse = z.array(zOAuthApp);
3317
+ export const zOauthAppCreateBody = zOAuthAppCreateInput;
3318
+ /**
3319
+ * Created app
3320
+ */
3321
+ export const zOauthAppCreateResponse = zOAuthApp;
3322
+ /**
3323
+ * Redirect URI
3324
+ */
3325
+ export const zOauthAppRedirectUriResponse = zOAuthAppRedirectUri;
3326
+ export const zOauthAppDeletePath = z.object({
3327
+ id: z.string().regex(/^oap_[0-9A-HJKMNP-TV-Z]{26}$/),
3328
+ });
3329
+ export const zOauthAppDeleteQuery = z.object({
3330
+ force: z.string().optional(),
3331
+ });
3332
+ /**
3333
+ * Archived
3334
+ */
3335
+ export const zOauthAppDeleteResponse = z.void();
3336
+ export const zOauthAppUpdateBody = zOAuthAppUpdateInput;
3337
+ export const zOauthAppUpdatePath = z.object({
3338
+ id: z.string().regex(/^oap_[0-9A-HJKMNP-TV-Z]{26}$/),
3339
+ });
3340
+ export const zOauthAppUpdateQuery = z.object({
3341
+ force: z.string().optional(),
3342
+ });
3343
+ /**
3344
+ * Updated app
3345
+ */
3346
+ export const zOauthAppUpdateResponse = zOAuthApp;
3347
+ export const zOauthAppUsagePath = z.object({
3348
+ id: z.string().regex(/^oap_[0-9A-HJKMNP-TV-Z]{26}$/),
3349
+ });
3350
+ /**
3351
+ * Usage
3352
+ */
3353
+ export const zOauthAppUsageResponse = zOAuthAppUsage;
2713
3354
  export const zMcpListQuery = z.object({
2714
3355
  limit: z.int().gte(1).lte(1000).optional(),
2715
3356
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2716
3357
  includeDeprecated: z.boolean().optional(),
2717
3358
  sort: z.enum(["popular", "trending", "recent"]).optional(),
2718
- visibility: z.enum(["private", "org"]).optional(),
3359
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2719
3360
  });
2720
3361
  /**
2721
3362
  * List of MCPs
@@ -2723,25 +3364,32 @@ export const zMcpListQuery = z.object({
2723
3364
  export const zMcpListResponse = z.array(zMcp);
2724
3365
  export const zMcpCreateBody = z.object({
2725
3366
  name: z.string().min(1).max(256),
2726
- slug: z.string().optional(),
3367
+ slug: z
3368
+ .string()
3369
+ .min(1)
3370
+ .max(128)
3371
+ .regex(/^[a-z0-9-]+$/)
3372
+ .optional(),
2727
3373
  description: z.string().optional().default(""),
2728
3374
  icon: z.string().nullish().default(null),
2729
3375
  mcpServerUrl: z.url().nullish().default(null),
2730
3376
  docUrl: z.url().nullish().default(null),
2731
3377
  type: z.enum(["remote", "local"]).optional().default("remote"),
2732
- transport: z.enum(["streamable-http", "sse", "stdio"]).optional().default("streamable-http"),
2733
3378
  command: z.string().nullish().default(null),
2734
3379
  args: z.array(z.string()).optional().default([]),
3380
+ cwd: z.string().nullish().default(null),
3381
+ timeout: zMcpTimeout.nullish().default(null),
2735
3382
  env: z.record(z.string(), z.string()).optional().default({}),
2736
- requiredCredentials: z.array(zRequiredCredential).optional().default([]),
3383
+ requiredCredentials: z.array(zRequiredCredential).optional(),
2737
3384
  version: z.string().nullish().default(null),
2738
3385
  repository: zRepository.nullish().default(null),
2739
3386
  tools: z.array(z.string()).optional().default([]),
2740
3387
  prompts: z.array(z.string()).optional().default([]),
2741
3388
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional().default("none"),
2742
3389
  authConfig: zMcpAuthConfig.nullish().default(null),
2743
- tags: z.array(z.string()).optional(),
2744
- visibility: z.enum(["private", "org"]).optional().default("org"),
3390
+ tags: z.array(z.string()).nullish(),
3391
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3392
+ allowDuplicateUrl: z.boolean().optional().default(false),
2745
3393
  });
2746
3394
  /**
2747
3395
  * Created MCP
@@ -2785,9 +3433,10 @@ export const zMcpUpdateBody = z.object({
2785
3433
  mcpServerUrl: z.url().optional(),
2786
3434
  docUrl: z.url().nullish(),
2787
3435
  type: z.enum(["remote", "local"]).optional(),
2788
- transport: z.enum(["streamable-http", "sse", "stdio"]).optional(),
2789
3436
  command: z.string().nullish(),
2790
3437
  args: z.array(z.string()).optional(),
3438
+ cwd: z.string().nullish(),
3439
+ timeout: zMcpTimeout.nullish(),
2791
3440
  env: z.record(z.string(), z.string()).optional(),
2792
3441
  requiredCredentials: z.array(zRequiredCredential).optional(),
2793
3442
  version: z.string().nullish(),
@@ -2797,7 +3446,7 @@ export const zMcpUpdateBody = z.object({
2797
3446
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional(),
2798
3447
  authConfig: zMcpAuthConfig.nullish(),
2799
3448
  websiteMetadata: zWebsiteMetadata.nullish(),
2800
- tags: z.array(z.string()).optional(),
3449
+ tags: z.array(z.string()).nullish(),
2801
3450
  });
2802
3451
  export const zMcpUpdatePath = z.object({
2803
3452
  id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2844,22 +3493,6 @@ export const zMcpUndeprecatePath = z.object({
2844
3493
  * Undeprecated MCP
2845
3494
  */
2846
3495
  export const zMcpUndeprecateResponse = zMcp;
2847
- export const zMcpOauthConnectBody = zMcpOAuthConnectBody;
2848
- export const zMcpOauthConnectPath = z.object({
2849
- id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2850
- });
2851
- /**
2852
- * OAuth connect result
2853
- */
2854
- export const zMcpOauthConnectResponse = zMcpOAuthConnectResult;
2855
- export const zMcpOauthSessionPath = z.object({
2856
- id: z.string().regex(/^mcp_[0-9A-HJKMNP-TV-Z]{26}$/),
2857
- sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/),
2858
- });
2859
- /**
2860
- * OAuth session status
2861
- */
2862
- export const zMcpOauthSessionResponse = zOAuthSessionStatus;
2863
3496
  /**
2864
3497
  * Resolved auth context
2865
3498
  */
@@ -2884,7 +3517,7 @@ export const zMemoryStoreListQuery = z.object({
2884
3517
  offset: z.int().gte(0).lte(9007199254740991).optional(),
2885
3518
  includeDeprecated: z.boolean().optional(),
2886
3519
  userId: z.string().nullish(),
2887
- visibility: z.enum(["private", "org"]).optional(),
3520
+ visibility: z.enum(["private", "pod", "org"]).optional(),
2888
3521
  });
2889
3522
  /**
2890
3523
  * List of memory stores
@@ -2894,7 +3527,7 @@ export const zMemoryStoreCreateBody = z.object({
2894
3527
  name: z.string().min(1).max(256),
2895
3528
  description: z.string().optional().default(""),
2896
3529
  isDefault: z.boolean().optional().default(false),
2897
- visibility: z.enum(["private", "org"]).optional().default("org"),
3530
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2898
3531
  });
2899
3532
  /**
2900
3533
  * Created memory store
@@ -2904,7 +3537,7 @@ export const zMemoryStoreGetPath = z.object({
2904
3537
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
2905
3538
  });
2906
3539
  /**
2907
- * Memory store details
3540
+ * memory store details
2908
3541
  */
2909
3542
  export const zMemoryStoreGetResponse = zMemoryStore;
2910
3543
  export const zMemoryStoreUpdateBody = z.object({
@@ -2973,6 +3606,7 @@ export const zMemoryStoreFilesStartUploadPath = z.object({
2973
3606
  export const zMemoryStoreFilesStartUploadResponse = zStoreStartUploadResponse;
2974
3607
  export const zMemoryStoreFilesFinalizeUploadBody = z.object({
2975
3608
  path: z.string().min(1),
3609
+ uploadId: z.string().min(1),
2976
3610
  });
2977
3611
  export const zMemoryStoreFilesFinalizeUploadPath = z.object({
2978
3612
  id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2981,6 +3615,17 @@ export const zMemoryStoreFilesFinalizeUploadPath = z.object({
2981
3615
  * Finalized file info
2982
3616
  */
2983
3617
  export const zMemoryStoreFilesFinalizeUploadResponse = zMemoryStoreFile;
3618
+ export const zMemoryStoreFilesWriteContentBody = z.string();
3619
+ export const zMemoryStoreFilesWriteContentPath = z.object({
3620
+ id: z.string().regex(/^mst_[0-9A-HJKMNP-TV-Z]{26}$/),
3621
+ });
3622
+ export const zMemoryStoreFilesWriteContentQuery = z.object({
3623
+ path: z.string().min(1),
3624
+ });
3625
+ /**
3626
+ * Written file info
3627
+ */
3628
+ export const zMemoryStoreFilesWriteContentResponse = zMemoryStoreFile;
2984
3629
  /**
2985
3630
  * Grouped model list
2986
3631
  */
@@ -3050,7 +3695,7 @@ export const zPodListQuery = z.object({
3050
3695
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3051
3696
  includeDeprecated: z.boolean().optional(),
3052
3697
  userId: z.string().nullish(),
3053
- visibility: z.enum(["private", "org"]).optional(),
3698
+ visibility: z.enum(["private", "pod", "org"]).optional(),
3054
3699
  });
3055
3700
  /**
3056
3701
  * List of pods
@@ -3058,13 +3703,15 @@ export const zPodListQuery = z.object({
3058
3703
  export const zPodListResponse = z.array(zPod);
3059
3704
  export const zPodCreateBody = z.object({
3060
3705
  name: z.string().min(1).max(256),
3706
+ icon: z.string().nullish().default(null),
3061
3707
  environmentId: z.string().nullish().default(null),
3062
3708
  description: z.string().optional().default(""),
3063
3709
  instructions: z.string().optional().default(""),
3064
3710
  isPrivate: z.boolean().optional().default(true),
3065
3711
  isDefault: z.boolean().optional().default(false),
3712
+ presetTemplate: zPresetTemplate.optional(),
3066
3713
  createDefaultProject: z.boolean().optional().default(true),
3067
- visibility: z.enum(["private", "org"]).optional().default("org"),
3714
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3068
3715
  });
3069
3716
  /**
3070
3717
  * Created pod with freshly provisioned sandbox
@@ -3079,11 +3726,13 @@ export const zPodGetPath = z.object({
3079
3726
  export const zPodGetResponse = zPod;
3080
3727
  export const zPodUpdateBody = z.object({
3081
3728
  name: z.string().min(1).max(256).optional(),
3729
+ icon: z.string().nullish(),
3082
3730
  description: z.string().optional(),
3083
3731
  isPrivate: z.boolean().optional(),
3084
3732
  environmentId: z.string().nullish(),
3085
3733
  defaultModel: z.string().nullish(),
3086
3734
  instructions: z.string().optional(),
3735
+ presetTemplate: zPresetTemplate.optional(),
3087
3736
  });
3088
3737
  export const zPodUpdatePath = z.object({
3089
3738
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -3095,6 +3744,17 @@ export const zPodUpdateResponse = zPod;
3095
3744
  export const zPodUsagePath = z.object({
3096
3745
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3097
3746
  });
3747
+ export const zPodUsageQuery = z.object({
3748
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).optional(),
3749
+ start: z.iso
3750
+ .datetime()
3751
+ .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))$/)
3752
+ .optional(),
3753
+ end: z.iso
3754
+ .datetime()
3755
+ .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))$/)
3756
+ .optional(),
3757
+ });
3098
3758
  /**
3099
3759
  * Pod credit usage
3100
3760
  */
@@ -3132,32 +3792,20 @@ export const zPodMemberRemovePath = z.object({
3132
3792
  * Removed member
3133
3793
  */
3134
3794
  export const zPodMemberRemoveResponse = zPodMember;
3135
- export const zPodVaultListPath = z.object({
3795
+ export const zPodCredentialListPath = z.object({
3136
3796
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3137
3797
  });
3138
3798
  /**
3139
- * List of vault associations
3799
+ * Resolved credentials
3140
3800
  */
3141
- export const zPodVaultListResponse = z.array(zPodVault);
3142
- export const zPodVaultAddBody = z.object({
3143
- vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
3144
- priority: z.int().gte(-9007199254740991).lte(9007199254740991).optional().default(0),
3145
- });
3146
- export const zPodVaultAddPath = z.object({
3147
- id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3148
- });
3149
- /**
3150
- * Added vault
3151
- */
3152
- export const zPodVaultAddResponse = zPodVault;
3153
- export const zPodVaultRemovePath = z.object({
3801
+ export const zPodCredentialListResponse = zPodCredentials;
3802
+ export const zPodAuthRequirementsPath = z.object({
3154
3803
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3155
- vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
3156
3804
  });
3157
3805
  /**
3158
- * Removed vault
3806
+ * Required credentials and whether each is satisfied
3159
3807
  */
3160
- export const zPodVaultRemoveResponse = zPodVault;
3808
+ export const zPodAuthRequirementsResponse = zAuthRequirements;
3161
3809
  export const zPodSandboxProvisionPath = z.object({
3162
3810
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3163
3811
  });
@@ -3179,6 +3827,120 @@ export const zPodSandboxStatusPath = z.object({
3179
3827
  * Current sandbox state
3180
3828
  */
3181
3829
  export const zPodSandboxStatusResponse2 = zPodSandboxStatusResponse;
3830
+ export const zPodDatabaseListPath = z.object({
3831
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3832
+ });
3833
+ export const zPodDatabaseListQuery = z.object({
3834
+ limit: z.int().gte(1).lte(1000).optional(),
3835
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3836
+ includeDeprecated: z.boolean().optional(),
3837
+ });
3838
+ /**
3839
+ * Pod databases
3840
+ */
3841
+ export const zPodDatabaseListResponse = z.array(zPodDatabase);
3842
+ export const zPodDatabaseCreateBody = z.object({
3843
+ name: z.string().min(1).max(256),
3844
+ slug: z
3845
+ .string()
3846
+ .min(1)
3847
+ .max(128)
3848
+ .regex(/^[a-z0-9-]+$/)
3849
+ .optional(),
3850
+ description: z.string().max(4096).optional().default(""),
3851
+ });
3852
+ export const zPodDatabaseCreatePath = z.object({
3853
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3854
+ });
3855
+ /**
3856
+ * Created pod database
3857
+ */
3858
+ export const zPodDatabaseCreateResponse = zPodDatabase;
3859
+ export const zPodDatabaseGetPath = z.object({
3860
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3861
+ id: z.string().regex(/^pdb_[0-9A-HJKMNP-TV-Z]{26}$/),
3862
+ });
3863
+ /**
3864
+ * Pod database details
3865
+ */
3866
+ export const zPodDatabaseGetResponse = zPodDatabase;
3867
+ export const zPodDatabaseUpdateBody = z.object({
3868
+ name: z.string().min(1).max(256).optional(),
3869
+ description: z.string().optional(),
3870
+ });
3871
+ export const zPodDatabaseUpdatePath = z.object({
3872
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3873
+ id: z.string().regex(/^pdb_[0-9A-HJKMNP-TV-Z]{26}$/),
3874
+ });
3875
+ /**
3876
+ * Updated pod database
3877
+ */
3878
+ export const zPodDatabaseUpdateResponse = zPodDatabase;
3879
+ export const zPodDatabaseArchivePath = z.object({
3880
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3881
+ id: z.string().regex(/^pdb_[0-9A-HJKMNP-TV-Z]{26}$/),
3882
+ });
3883
+ /**
3884
+ * Archived pod database
3885
+ */
3886
+ export const zPodDatabaseArchiveResponse = zPodDatabase;
3887
+ export const zArtifactListPath = z.object({
3888
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3889
+ });
3890
+ export const zArtifactListQuery = z.object({
3891
+ limit: z.int().gte(1).lte(1000).optional(),
3892
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
3893
+ includeDeprecated: z.boolean().optional(),
3894
+ });
3895
+ /**
3896
+ * Pod artifacts
3897
+ */
3898
+ export const zArtifactListResponse = z.array(zArtifact);
3899
+ export const zArtifactCreateBody = z.object({
3900
+ slug: z
3901
+ .string()
3902
+ .min(1)
3903
+ .max(128)
3904
+ .regex(/^[a-z0-9-]+$/),
3905
+ title: z.string().min(1).max(200),
3906
+ description: z.string().max(2000).optional().default(""),
3907
+ sourceSessionId: z.string().nullish().default(null),
3908
+ });
3909
+ export const zArtifactCreatePath = z.object({
3910
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3911
+ });
3912
+ /**
3913
+ * Created artifact
3914
+ */
3915
+ export const zArtifactCreateResponse = zArtifact;
3916
+ export const zArtifactGetPath = z.object({
3917
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3918
+ id: z.string().regex(/^art_[0-9A-HJKMNP-TV-Z]{26}$/),
3919
+ });
3920
+ /**
3921
+ * The artifact
3922
+ */
3923
+ export const zArtifactGetResponse = zArtifact;
3924
+ export const zArtifactUpdateBody = z.object({
3925
+ title: z.string().min(1).max(200).optional(),
3926
+ description: z.string().max(2000).optional(),
3927
+ });
3928
+ export const zArtifactUpdatePath = z.object({
3929
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3930
+ id: z.string().regex(/^art_[0-9A-HJKMNP-TV-Z]{26}$/),
3931
+ });
3932
+ /**
3933
+ * Updated artifact
3934
+ */
3935
+ export const zArtifactUpdateResponse = zArtifact;
3936
+ export const zArtifactArchivePath = z.object({
3937
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3938
+ id: z.string().regex(/^art_[0-9A-HJKMNP-TV-Z]{26}$/),
3939
+ });
3940
+ /**
3941
+ * Archived artifact
3942
+ */
3943
+ export const zArtifactArchiveResponse = zArtifact;
3182
3944
  export const zProjectListQuery = z.object({
3183
3945
  limit: z.int().gte(1).lte(1000).optional(),
3184
3946
  offset: z.int().gte(0).lte(9007199254740991).optional(),
@@ -3187,7 +3949,7 @@ export const zProjectListQuery = z.object({
3187
3949
  .string()
3188
3950
  .regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
3189
3951
  .optional(),
3190
- visibility: z.enum(["private", "org"]).optional(),
3952
+ visibility: z.enum(["private", "pod", "org"]).optional(),
3191
3953
  });
3192
3954
  /**
3193
3955
  * List of projects
@@ -3196,12 +3958,13 @@ export const zProjectListResponse = z.array(zProject);
3196
3958
  export const zProjectCreateBody = z.object({
3197
3959
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3198
3960
  name: z.string().min(1).max(256),
3961
+ icon: z.string().nullish().default(null),
3199
3962
  description: z.string().optional().default(""),
3200
3963
  instructions: z.string().optional().default(""),
3201
3964
  permission: zPermissionConfig.optional(),
3202
3965
  gitRepos: z.array(zProjectGitRepo).optional().default([]),
3203
3966
  references: zProjectReferences.optional(),
3204
- visibility: z.enum(["private", "org"]).optional().default("org"),
3967
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3205
3968
  });
3206
3969
  /**
3207
3970
  * Created project
@@ -3216,6 +3979,7 @@ export const zProjectGetPath = z.object({
3216
3979
  export const zProjectGetResponse = zProject;
3217
3980
  export const zProjectUpdateBody = z.object({
3218
3981
  name: z.string().min(1).max(256).optional(),
3982
+ icon: z.string().nullish(),
3219
3983
  description: z.string().optional(),
3220
3984
  permission: zPermissionConfig.optional(),
3221
3985
  gitRepos: z.array(zProjectGitRepo).optional(),
@@ -3454,7 +4218,7 @@ export const zReplayListQuery = z.object({
3454
4218
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3455
4219
  includeDeprecated: z.boolean().optional(),
3456
4220
  publisherId: z.string().optional(),
3457
- visibility: z.enum(["private", "org"]).optional(),
4221
+ visibility: z.enum(["private", "pod", "org"]).optional(),
3458
4222
  });
3459
4223
  /**
3460
4224
  * List
@@ -3465,7 +4229,7 @@ export const zReplayCreateBody = z.object({
3465
4229
  publisherId: z.string().nullish().default(null),
3466
4230
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
3467
4231
  shareToken: z.string().nullish().default(null),
3468
- visibility: z.enum(["private", "org"]).optional().default("org"),
4232
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3469
4233
  });
3470
4234
  /**
3471
4235
  * Created
@@ -3527,6 +4291,13 @@ export const zReplayShareBody = z.object({
3527
4291
  * Shared replay
3528
4292
  */
3529
4293
  export const zReplayShareResponse = zReplay;
4294
+ export const zResourceIconUploadBody = z.object({
4295
+ file: z.string(),
4296
+ });
4297
+ /**
4298
+ * Persistent resource icon URL
4299
+ */
4300
+ export const zResourceIconUploadResponse = zResourceIconUpload;
3530
4301
  export const zSessionListQuery = z.object({
3531
4302
  podId: z.string().optional(),
3532
4303
  projectId: z.string().optional(),
@@ -3661,7 +4432,7 @@ export const zSkillListQuery = z.object({
3661
4432
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3662
4433
  includeDeprecated: z.boolean().optional(),
3663
4434
  sort: z.enum(["popular", "trending", "recent"]).optional(),
3664
- visibility: z.enum(["private", "org"]).optional(),
4435
+ visibility: z.enum(["private", "pod", "org"]).optional(),
3665
4436
  query: z.string().optional(),
3666
4437
  published: z.boolean().optional(),
3667
4438
  publisherId: z.string().optional(),
@@ -3681,8 +4452,8 @@ export const zSkillCreateBody = z.object({
3681
4452
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
3682
4453
  version: z.string().optional(),
3683
4454
  releaseNotes: z.string().optional(),
3684
- requiredCredentials: z.array(zRequiredCredential).optional().default([]),
3685
- tags: z.array(z.string()).optional(),
4455
+ requiredCredentials: z.array(zSkillRequiredCredential).optional(),
4456
+ tags: z.array(z.string()).nullish(),
3686
4457
  files: z
3687
4458
  .array(z.object({
3688
4459
  path: z.string().min(1),
@@ -3700,7 +4471,7 @@ export const zSkillCreateBody = z.object({
3700
4471
  path: z.string().optional(),
3701
4472
  })
3702
4473
  .optional(),
3703
- visibility: z.enum(["private", "org"]).optional().default("org"),
4474
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3704
4475
  });
3705
4476
  /**
3706
4477
  * Created skill
@@ -3727,7 +4498,7 @@ export const zSkillUpdateBody = z.object({
3727
4498
  docUrl: z.string().nullish(),
3728
4499
  repository: zRepository.nullish(),
3729
4500
  websiteMetadata: zWebsiteMetadata.nullish(),
3730
- tags: z.array(z.string()).optional(),
4501
+ tags: z.array(z.string()).nullish(),
3731
4502
  });
3732
4503
  export const zSkillUpdatePath = z.object({
3733
4504
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -3770,7 +4541,7 @@ export const zSkillUndeprecateResponse = zSkill;
3770
4541
  export const zSkillCopyBody = z.object({
3771
4542
  name: z.string(),
3772
4543
  version: z.string().optional(),
3773
- visibility: z.enum(["private", "org"]).optional().default("org"),
4544
+ visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3774
4545
  });
3775
4546
  export const zSkillCopyPath = z.object({
3776
4547
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -3804,7 +4575,7 @@ export const zSkillVersionCreateBody = z.object({
3804
4575
  .optional()
3805
4576
  .default("patch"),
3806
4577
  releaseNotes: z.string().optional(),
3807
- requiredCredentials: z.array(zRequiredCredential).optional().default([]),
4578
+ requiredCredentials: z.array(zSkillRequiredCredential).optional(),
3808
4579
  files: z
3809
4580
  .array(z.object({
3810
4581
  path: z.string().min(1),
@@ -3886,23 +4657,23 @@ export const zTopologyShareArchivePath = z.object({
3886
4657
  * Archived topology share
3887
4658
  */
3888
4659
  export const zTopologyShareArchiveResponse = zTopologyShare;
3889
- export const zTriggerListQuery = z.object({
4660
+ export const zCronTriggerListPath = z.object({
4661
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
4662
+ });
4663
+ export const zCronTriggerListQuery = z.object({
3890
4664
  limit: z.int().gte(1).lte(1000).optional(),
3891
4665
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3892
4666
  includeDeprecated: z.boolean().optional(),
3893
- projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3894
4667
  });
3895
4668
  /**
3896
4669
  * List of cron triggers
3897
4670
  */
3898
- export const zTriggerListResponse = z.array(zCronTrigger);
3899
- export const zTriggerCreateBody = z.object({
3900
- projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
4671
+ export const zCronTriggerListResponse = z.array(zCronTrigger);
4672
+ export const zCronTriggerCreateBody = z.object({
3901
4673
  projectAgentId: z.string().nullish().default(null),
3902
- senderUserId: z.string().optional(),
3903
4674
  inputMessage: z.string(),
3904
4675
  schedule: z.string(),
3905
- timezone: z.string().nullish().default(null),
4676
+ timezone: z.string().optional().default("UTC"),
3906
4677
  until: z.iso
3907
4678
  .datetime()
3908
4679
  .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))$/)
@@ -3910,50 +4681,48 @@ export const zTriggerCreateBody = z.object({
3910
4681
  .default(null),
3911
4682
  isEnabled: z.boolean().optional().default(true),
3912
4683
  });
4684
+ export const zCronTriggerCreatePath = z.object({
4685
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
4686
+ });
3913
4687
  /**
3914
4688
  * Created cron trigger
3915
4689
  */
3916
- export const zTriggerCreateResponse = zCronTrigger;
3917
- export const zTriggerGetPath = z.object({
3918
- triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3919
- });
3920
- export const zTriggerGetQuery = z.object({
4690
+ export const zCronTriggerCreateResponse = zCronTrigger;
4691
+ export const zCronTriggerGetPath = z.object({
3921
4692
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
4693
+ triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3922
4694
  });
3923
4695
  /**
3924
- * Cron trigger details
4696
+ * Cron trigger details with Temporal runtime state
3925
4697
  */
3926
- export const zTriggerGetResponse = zCronTrigger;
3927
- export const zTriggerUpdateBody = z.object({
4698
+ export const zCronTriggerGetResponse = zCronTriggerDetail;
4699
+ export const zCronTriggerUpdateBody = z.object({
3928
4700
  projectAgentId: z.string().nullish(),
3929
- senderUserId: z.string().optional(),
3930
4701
  inputMessage: z.string().optional(),
3931
4702
  schedule: z.string().optional(),
3932
- timezone: z.string().nullish(),
4703
+ timezone: z.string().optional(),
3933
4704
  until: z.iso
3934
4705
  .datetime()
3935
4706
  .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))$/)
3936
4707
  .nullish(),
3937
4708
  isEnabled: z.boolean().optional(),
3938
- projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3939
4709
  });
3940
- export const zTriggerUpdatePath = z.object({
4710
+ export const zCronTriggerUpdatePath = z.object({
4711
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3941
4712
  triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3942
4713
  });
3943
4714
  /**
3944
4715
  * Updated cron trigger
3945
4716
  */
3946
- export const zTriggerUpdateResponse = zCronTrigger;
3947
- export const zTriggerArchiveBody = z.object({
4717
+ export const zCronTriggerUpdateResponse = zCronTrigger;
4718
+ export const zCronTriggerArchivePath = z.object({
3948
4719
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
3949
- });
3950
- export const zTriggerArchivePath = z.object({
3951
4720
  triggerId: z.string().regex(/^ctrg_[0-9A-HJKMNP-TV-Z]{26}$/),
3952
4721
  });
3953
4722
  /**
3954
4723
  * Archived cron trigger
3955
4724
  */
3956
- export const zTriggerArchiveResponse = zCronTrigger;
4725
+ export const zCronTriggerArchiveResponse = zCronTrigger;
3957
4726
  export const zWebhookTriggerListQuery = z.object({
3958
4727
  limit: z.int().gte(1).lte(1000).optional(),
3959
4728
  offset: z.int().gte(0).lte(9007199254740991).optional(),
@@ -4185,54 +4954,19 @@ export const zVaultListQuery = z.object({
4185
4954
  limit: z.int().gte(1).lte(1000).optional(),
4186
4955
  offset: z.int().gte(0).lte(9007199254740991).optional(),
4187
4956
  includeDeprecated: z.boolean().optional(),
4188
- visibility: z.enum(["private", "org"]).optional(),
4957
+ visibility: z.enum(["private", "pod", "org"]).optional(),
4189
4958
  });
4190
4959
  /**
4191
4960
  * List of vaults
4192
4961
  */
4193
4962
  export const zVaultListResponse = z.array(zVault);
4194
- export const zVaultCreateBody = z.object({
4195
- name: z.string().min(1).max(256),
4196
- description: z.string().optional().default(""),
4197
- isDefault: z.boolean().optional().default(false),
4198
- visibility: z.enum(["private", "org"]).optional().default("org"),
4199
- });
4200
- /**
4201
- * Created vault
4202
- */
4203
- export const zVaultCreateResponse = zVault;
4204
- export const zVaultDeletePath = z.object({
4205
- id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4206
- });
4207
- /**
4208
- * Deleted vault
4209
- */
4210
- export const zVaultDeleteResponse = zVault;
4211
4963
  export const zVaultGetPath = z.object({
4212
4964
  id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4213
4965
  });
4214
4966
  /**
4215
4967
  * Vault details
4216
4968
  */
4217
- export const zVaultGetResponse = zVault;
4218
- export const zVaultUpdateBody = z.object({
4219
- name: z.string().min(1).max(256).optional(),
4220
- description: z.string().optional(),
4221
- });
4222
- export const zVaultUpdatePath = z.object({
4223
- id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4224
- });
4225
- /**
4226
- * Updated vault
4227
- */
4228
- export const zVaultUpdateResponse = zVault;
4229
- export const zVaultArchivePath = z.object({
4230
- id: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4231
- });
4232
- /**
4233
- * Archived vault
4234
- */
4235
- export const zVaultArchiveResponse = zVault;
4969
+ export const zVaultGetResponse = zVaultDetail;
4236
4970
  export const zCredentialListPath = z.object({
4237
4971
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4238
4972
  });
@@ -4245,18 +4979,7 @@ export const zCredentialListQuery = z.object({
4245
4979
  * List of credentials
4246
4980
  */
4247
4981
  export const zCredentialListResponse = z.array(zCredential);
4248
- export const zCredentialCreateBody = z.object({
4249
- name: z.string().min(1).max(256),
4250
- mcpId: z.string().nullish().default(null),
4251
- label: z
4252
- .string()
4253
- .min(1)
4254
- .max(64)
4255
- .regex(/^[A-Z0-9_]+$/)
4256
- .nullish()
4257
- .default(null),
4258
- auth: zCredentialAuth,
4259
- });
4982
+ export const zCredentialCreateBody = zCreateCredentialBody;
4260
4983
  export const zCredentialCreatePath = z.object({
4261
4984
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4262
4985
  });
@@ -4292,14 +5015,6 @@ export const zCredentialUpdatePath = z.object({
4292
5015
  * Updated credential
4293
5016
  */
4294
5017
  export const zCredentialUpdateResponse = zCredential;
4295
- export const zCredentialArchivePath = z.object({
4296
- vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4297
- id: z.string().regex(/^crd_[0-9A-HJKMNP-TV-Z]{26}$/),
4298
- });
4299
- /**
4300
- * Archived credential
4301
- */
4302
- export const zCredentialArchiveResponse = zCredential;
4303
5018
  export const zCredentialTransferBody = zCredentialTransferInput;
4304
5019
  export const zCredentialTransferPath = z.object({
4305
5020
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -4309,16 +5024,15 @@ export const zCredentialTransferPath = z.object({
4309
5024
  * Credential transferred
4310
5025
  */
4311
5026
  export const zCredentialTransferResponse = zCredentialTransferResult;
4312
- export const zCredentialOauthStartBody = zOAuthStartInput;
4313
- export const zCredentialOauthStartPath = z.object({
5027
+ export const zCredentialOauthConnectBody = zOAuthConnectBody;
5028
+ export const zCredentialOauthConnectPath = z.object({
4314
5029
  vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4315
5030
  });
4316
5031
  /**
4317
- * Authorization URL for the user to visit
5032
+ * OAuth connect result
4318
5033
  */
4319
- export const zCredentialOauthStartResponse = zOAuthStartResult;
5034
+ export const zCredentialOauthConnectResponse = zOAuthConnectResult;
4320
5035
  export const zCredentialOauthSessionPath = z.object({
4321
- vaultId: z.string().regex(/^vlt_[0-9A-HJKMNP-TV-Z]{26}$/),
4322
5036
  sessionId: z.string().regex(/^oas_[0-9A-HJKMNP-TV-Z]{26}$/),
4323
5037
  });
4324
5038
  /**
@@ -4375,6 +5089,15 @@ export const zRegistryMcpGetPath = z.object({
4375
5089
  * MCP details
4376
5090
  */
4377
5091
  export const zRegistryMcpGetResponse = zMcp;
5092
+ export const zRegistryBlueprintListQuery = z.object({
5093
+ limit: z.int().gte(1).lte(1000).optional(),
5094
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
5095
+ includeDeprecated: z.boolean().optional(),
5096
+ });
5097
+ /**
5098
+ * Published blueprint list
5099
+ */
5100
+ export const zRegistryBlueprintListResponse = z.array(zBlueprintPublicListItem);
4378
5101
  export const zRegistryBlueprintGetPath = z.object({
4379
5102
  slug: z
4380
5103
  .string()
@@ -4397,6 +5120,70 @@ export const zRegistryPublisherGetPath = z.object({
4397
5120
  * Public publisher view
4398
5121
  */
4399
5122
  export const zRegistryPublisherGetResponse = zPublisherPublicView;
5123
+ export const zRegistryPublisherBlueprintsPath = z.object({
5124
+ slug: z
5125
+ .string()
5126
+ .min(1)
5127
+ .max(128)
5128
+ .regex(/^[a-z0-9-]+$/),
5129
+ });
5130
+ export const zRegistryPublisherBlueprintsQuery = z.object({
5131
+ limit: z.int().gte(1).lte(1000).optional(),
5132
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
5133
+ includeDeprecated: z.boolean().optional(),
5134
+ });
5135
+ /**
5136
+ * Published blueprint list for the publisher
5137
+ */
5138
+ export const zRegistryPublisherBlueprintsResponse = z.array(zBlueprintPublicListItem);
5139
+ export const zRegistryPublisherSkillsPath = z.object({
5140
+ slug: z
5141
+ .string()
5142
+ .min(1)
5143
+ .max(128)
5144
+ .regex(/^[a-z0-9-]+$/),
5145
+ });
5146
+ export const zRegistryPublisherSkillsQuery = z.object({
5147
+ limit: z.int().gte(1).lte(1000).optional(),
5148
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
5149
+ includeDeprecated: z.boolean().optional(),
5150
+ });
5151
+ /**
5152
+ * Published skill list for the publisher
5153
+ */
5154
+ export const zRegistryPublisherSkillsResponse = z.array(zSkill);
5155
+ export const zRegistryPublisherAgentsPath = z.object({
5156
+ slug: z
5157
+ .string()
5158
+ .min(1)
5159
+ .max(128)
5160
+ .regex(/^[a-z0-9-]+$/),
5161
+ });
5162
+ export const zRegistryPublisherAgentsQuery = z.object({
5163
+ limit: z.int().gte(1).lte(1000).optional(),
5164
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
5165
+ includeDeprecated: z.boolean().optional(),
5166
+ });
5167
+ /**
5168
+ * Published agent list for the publisher
5169
+ */
5170
+ export const zRegistryPublisherAgentsResponse = z.array(zAgent);
5171
+ export const zRegistryPublisherMcpsPath = z.object({
5172
+ slug: z
5173
+ .string()
5174
+ .min(1)
5175
+ .max(128)
5176
+ .regex(/^[a-z0-9-]+$/),
5177
+ });
5178
+ export const zRegistryPublisherMcpsQuery = z.object({
5179
+ limit: z.int().gte(1).lte(1000).optional(),
5180
+ offset: z.int().gte(0).lte(9007199254740991).optional(),
5181
+ includeDeprecated: z.boolean().optional(),
5182
+ });
5183
+ /**
5184
+ * Published MCP list for the publisher
5185
+ */
5186
+ export const zRegistryPublisherMcpsResponse = z.array(zMcp);
4400
5187
  export const zRegistryReplayGetPath = z.object({
4401
5188
  slug: z
4402
5189
  .string()