@renai-labs/sdk 0.1.19 → 0.1.21

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