@renai-labs/sdk 0.1.23 → 0.1.24

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.
@@ -1,5 +1,8 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
  import * as z from "zod";
3
+ /**
4
+ * What this project's tools may do. Maps a tool name or glob to "allow", "ask" (stop and ask the user first) or "deny"; a value may also be a map of glob to action. MCP tools are "<mcp-slug>_<tool>", so "slack_*" is all of Slack's. Full-replace on update. Example: {"webfetch":"deny","slack_post_message":"ask","bash":{"*":"allow","rm *":"deny"}}
5
+ */
3
6
  export const zPermissionConfig = z.union([
4
7
  z.object({
5
8
  __originalKeys: z.array(z.string()).optional(),
@@ -76,6 +79,7 @@ export const zReplayPublicView = z.object({
76
79
  session: zReplayPublicSession,
77
80
  messages: z.array(zReplayMessage),
78
81
  });
82
+ export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
79
83
  export const zSpecPublicTriggerEntry = z.object({
80
84
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
81
85
  ref: z
@@ -84,10 +88,6 @@ export const zSpecPublicTriggerEntry = z.object({
84
88
  })
85
89
  .optional(),
86
90
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
87
- agent: z
88
- .string()
89
- .regex(/^[a-z0-9][a-z0-9-]*$/)
90
- .optional(),
91
91
  schedule: z.string(),
92
92
  timezone: z.string().optional(),
93
93
  until: z.iso
@@ -95,20 +95,13 @@ export const zSpecPublicTriggerEntry = z.object({
95
95
  .regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/)
96
96
  .optional(),
97
97
  inputMessage: z.string(),
98
+ model: z.string().optional(),
98
99
  enabled: z.boolean().optional(),
99
100
  });
100
101
  export const zSpecChannelBinding = z.object({
101
102
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
102
103
  kind: z.enum(["slack", "linear", "github", "telegram", "email"]),
103
104
  purpose: z.string(),
104
- agent: z
105
- .string()
106
- .regex(/^[a-z0-9][a-z0-9-]*$/)
107
- .optional(),
108
- });
109
- export const zSpecProjectAgent = z.object({
110
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
111
- mode: z.enum(["subagent", "all"]).optional().default("all"),
112
105
  });
113
106
  export const zProjectReference = z.union([
114
107
  z.string(),
@@ -137,9 +130,9 @@ export const zSpecPublicProjectEntry = z.object({
137
130
  ref: zSpecRef.optional(),
138
131
  name: z.string().optional(),
139
132
  description: z.string().optional(),
133
+ icon: z.string().optional(),
140
134
  instructions: z.string().optional(),
141
135
  references: zProjectReferences.optional(),
142
- agents: z.array(zSpecProjectAgent).optional(),
143
136
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
144
137
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
145
138
  channels: z.array(zSpecChannelBinding).optional(),
@@ -157,47 +150,36 @@ export const zSpecPublicSkillEntry = z.object({
157
150
  name: z.string().optional(),
158
151
  registrySlug: z.string().optional(),
159
152
  });
160
- export const zSpecPublicAgentEntry = z.object({
161
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
162
- ref: zSpecRef.optional(),
163
- name: z.string().optional(),
164
- model: z.string().optional(),
165
- scope: z.enum(["org", "user", "registry"]).optional(),
166
- skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
167
- mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
168
- });
169
153
  export const zSpecInitialPrompt = z.object({
170
154
  prompt: z.string(),
171
155
  project: z
172
156
  .string()
173
157
  .regex(/^[a-z0-9][a-z0-9-]*$/)
174
158
  .optional(),
175
- agent: z
176
- .string()
177
- .regex(/^[a-z0-9][a-z0-9-]*$/)
178
- .optional(),
159
+ });
160
+ export const zSpecPod = z.object({
161
+ name: z.string().optional(),
162
+ icon: z.string().optional(),
163
+ description: z.string().optional(),
164
+ defaultModel: z.string().optional(),
179
165
  });
180
166
  export const zSpecPublic = z.object({
181
- schemaVersion: z.literal(2),
167
+ schemaVersion: z.literal(3),
182
168
  meta: z.object({
183
169
  name: z.string(),
184
170
  description: z.string().optional(),
185
171
  snapshotDate: z.string().optional(),
186
172
  }),
173
+ pod: zSpecPod.optional(),
187
174
  instructions: z.string().optional(),
188
175
  initialPrompt: zSpecInitialPrompt.optional(),
189
- agents: z.array(zSpecPublicAgentEntry),
190
176
  skills: z.array(zSpecPublicSkillEntry),
191
177
  mcps: z.array(zSpecPublicMcpEntry),
192
178
  projects: z.array(zSpecPublicProjectEntry),
193
179
  triggers: z.array(zSpecPublicTriggerEntry),
194
180
  environment: z
195
181
  .object({
196
- ref: z
197
- .object({
198
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
199
- })
200
- .optional(),
182
+ preset: zPresetTemplate.optional(),
201
183
  })
202
184
  .optional(),
203
185
  });
@@ -216,37 +198,35 @@ export const zPublisherPublicView = z.object({
216
198
  isVerified: z.boolean(),
217
199
  links: z.array(zPublisherLink),
218
200
  });
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([]),
201
+ export const zBlueprintComposition = z.object({
202
+ uses: z.array(z.object({
203
+ slug: z.string(),
204
+ into: z.string().optional(),
205
+ })),
238
206
  });
207
+ /**
208
+ * What a composite is organised around. Null on apps, and on composites nobody has shelved yet.
209
+ */
210
+ export const zBlueprintType = z.enum(["use-case", "company", "function"]);
211
+ export const zBlueprintKind = z.enum(["app", "composite"]);
239
212
  export const zBlueprintPublicView = z.object({
240
213
  id: z.string(),
241
214
  slug: z.string(),
242
215
  name: z.string(),
243
216
  description: z.string().nullable(),
244
217
  websiteMetadata: zWebsiteMetadata.nullable(),
245
- pageContent: zBlueprintPageContent.nullable(),
218
+ kind: zBlueprintKind,
219
+ type: zBlueprintType.nullable(),
220
+ composition: zBlueprintComposition.nullable(),
246
221
  publisherId: z.string(),
247
222
  publisher: zPublisherPublicView.nullish().default(null),
248
223
  template: zSpecPublic,
249
224
  replays: z.array(z.string()),
225
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6),
226
+ brandColor: z
227
+ .string()
228
+ .regex(/^#[0-9a-f]{6}$/)
229
+ .nullable(),
250
230
  });
251
231
  export const zBlueprintPublicListItem = z.object({
252
232
  id: z.string(),
@@ -260,6 +240,27 @@ export const zBlueprintPublicListItem = z.object({
260
240
  .datetime()
261
241
  .regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
262
242
  });
243
+ export const zSetupSource = z.object({
244
+ name: z.string().min(1).max(64),
245
+ url: z.url().optional(),
246
+ verifiedAt: z.iso
247
+ .date()
248
+ .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])))$/)
249
+ .optional(),
250
+ });
251
+ export const zSetupMedia = z.object({
252
+ kind: z.enum(["image", "video"]),
253
+ url: z.url(),
254
+ alt: z.string().min(1).max(200),
255
+ poster: z.url().optional(),
256
+ });
257
+ export const zSetup = z.object({
258
+ url: z.url().optional(),
259
+ markdown: z.string().max(16384).optional(),
260
+ media: z.array(zSetupMedia).max(8).optional().default([]),
261
+ source: zSetupSource.optional(),
262
+ citations: z.array(z.url()).max(12).optional().default([]),
263
+ });
263
264
  export const zRequirementWhen = z.object({
264
265
  name: z
265
266
  .string()
@@ -821,6 +822,7 @@ export const zCronTriggerDetail = z.object({
821
822
  projectAgentId: z.string().nullable(),
822
823
  senderUserId: z.string(),
823
824
  inputMessage: z.string(),
825
+ model: z.string().nullable(),
824
826
  schedule: z.string(),
825
827
  timezone: z.string().nullable(),
826
828
  until: z.iso
@@ -861,6 +863,7 @@ export const zCronTrigger = z.object({
861
863
  projectAgentId: z.string().nullable(),
862
864
  senderUserId: z.string(),
863
865
  inputMessage: z.string(),
866
+ model: z.string().nullable(),
864
867
  schedule: z.string(),
865
868
  timezone: z.string().nullable(),
866
869
  until: z.iso
@@ -1003,6 +1006,7 @@ export const zTopology = z.object({
1003
1006
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1004
1007
  schedule: z.string(),
1005
1008
  inputMessage: z.string(),
1009
+ model: z.string().optional(),
1006
1010
  }))
1007
1011
  .optional(),
1008
1012
  emails: z
@@ -1079,6 +1083,7 @@ export const zSkillArchiveResult = z.object({
1079
1083
  publisherId: z.string().nullable(),
1080
1084
  parentId: z.string().nullable(),
1081
1085
  websiteMetadata: zWebsiteMetadata.nullable(),
1086
+ setup: zSetup.nullable(),
1082
1087
  sortOrder: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1083
1088
  popularityScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1084
1089
  trendingScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
@@ -1117,6 +1122,7 @@ export const zSkill = z.object({
1117
1122
  publisherId: z.string().nullable(),
1118
1123
  parentId: z.string().nullable(),
1119
1124
  websiteMetadata: zWebsiteMetadata.nullable(),
1125
+ setup: zSetup.nullable(),
1120
1126
  sortOrder: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1121
1127
  popularityScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1122
1128
  trendingScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
@@ -1530,6 +1536,7 @@ export const zAuthRequirementEnv = z.union([
1530
1536
  description: z.string().max(512).optional(),
1531
1537
  satisfied: z.boolean(),
1532
1538
  neededBy: z.array(zAuthRequirementEnvSource),
1539
+ setup: zSetup.nullable(),
1533
1540
  }),
1534
1541
  z.object({
1535
1542
  kind: z.literal("secret"),
@@ -1541,6 +1548,7 @@ export const zAuthRequirementEnv = z.union([
1541
1548
  description: z.string().max(512).optional(),
1542
1549
  satisfied: z.boolean(),
1543
1550
  neededBy: z.array(zAuthRequirementEnvSource),
1551
+ setup: zSetup.nullable(),
1544
1552
  }),
1545
1553
  z.object({
1546
1554
  kind: z.literal("oauth_app"),
@@ -1548,6 +1556,7 @@ export const zAuthRequirementEnv = z.union([
1548
1556
  description: z.string().max(512).optional(),
1549
1557
  satisfied: z.boolean(),
1550
1558
  neededBy: z.array(zAuthRequirementEnvSource),
1559
+ setup: zSetup.nullable(),
1551
1560
  }),
1552
1561
  z.object({
1553
1562
  kind: z.literal("text"),
@@ -1562,6 +1571,7 @@ export const zAuthRequirementEnv = z.union([
1562
1571
  when: zRequirementWhen.optional(),
1563
1572
  satisfied: z.boolean(),
1564
1573
  neededBy: z.array(zAuthRequirementEnvSource),
1574
+ setup: zSetup.nullable(),
1565
1575
  }),
1566
1576
  z.object({
1567
1577
  kind: z.literal("select"),
@@ -1583,6 +1593,7 @@ export const zAuthRequirementEnv = z.union([
1583
1593
  when: zRequirementWhen.optional(),
1584
1594
  satisfied: z.boolean(),
1585
1595
  neededBy: z.array(zAuthRequirementEnvSource),
1596
+ setup: zSetup.nullable(),
1586
1597
  }),
1587
1598
  ]);
1588
1599
  export const zMcpAuthConfig = z.union([
@@ -1658,6 +1669,7 @@ export const zAuthRequirementMcp = z.object({
1658
1669
  authConfig: zMcpAuthConfig.nullable(),
1659
1670
  satisfied: z.boolean(),
1660
1671
  neededByAgentIds: z.array(z.string()),
1672
+ setup: zSetup.nullable(),
1661
1673
  });
1662
1674
  export const zAuthRequirements = z.object({
1663
1675
  mcps: z.array(zAuthRequirementMcp),
@@ -1690,7 +1702,6 @@ export const zPodMember = z.object({
1690
1702
  .datetime()
1691
1703
  .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))$/),
1692
1704
  });
1693
- export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
1694
1705
  export const zPod = z.object({
1695
1706
  id: z.string(),
1696
1707
  name: z.string(),
@@ -1891,6 +1902,7 @@ export const zMcp = z.object({
1891
1902
  userId: z.string().nullable(),
1892
1903
  publisherId: z.string().nullable(),
1893
1904
  websiteMetadata: zWebsiteMetadata.nullable(),
1905
+ setup: zSetup.nullable(),
1894
1906
  sortOrder: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1895
1907
  popularityScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1896
1908
  trendingScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
@@ -2267,11 +2279,10 @@ export const zBlueprintInstallRequirement = z.object({
2267
2279
  credential: z.string().optional(),
2268
2280
  });
2269
2281
  export const zBlueprintInstallReport = z.object({
2270
- agents: z.array(z.string()),
2271
2282
  skills: z.array(z.string()),
2272
2283
  mcps: z.array(z.string()),
2273
2284
  skipped: z.array(z.object({
2274
- kind: z.enum(["skill", "agent", "mcp", "project", "trigger", "environment"]),
2285
+ kind: z.enum(["skill", "mcp", "project", "trigger", "environment", "gitRepo"]),
2275
2286
  sourceId: z.string(),
2276
2287
  reason: z.string(),
2277
2288
  })),
@@ -2284,16 +2295,11 @@ export const zBlueprintInstallReport = z.object({
2284
2295
  .string()
2285
2296
  .regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/)
2286
2297
  .optional(),
2287
- agentId: z
2288
- .string()
2289
- .regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
2290
- .optional(),
2291
2298
  })
2292
2299
  .optional(),
2293
2300
  });
2294
2301
  export const zBlueprintSelection = z.object({
2295
2302
  projectIds: z.array(z.string()).optional().default([]),
2296
- agentIds: z.array(z.string()).optional().default([]),
2297
2303
  skillIds: z.array(z.string()).optional().default([]),
2298
2304
  mcpIds: z.array(z.string()).optional().default([]),
2299
2305
  replayIds: z.array(z.string()).optional().default([]),
@@ -2302,6 +2308,9 @@ export const zBlueprintSelection = z.object({
2302
2308
  export const zSpecEnvironmentDef = z.object({
2303
2309
  networking: zNetworkingConfig,
2304
2310
  packages: zPackagesConfig,
2311
+ cpuCount: zTemplateCpuCount.optional(),
2312
+ memoryMB: zTemplateMemoryMb.optional(),
2313
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional(),
2305
2314
  });
2306
2315
  export const zSpecRequirement = z.object({
2307
2316
  id: z.string(),
@@ -2322,11 +2331,7 @@ export const zSpecRequirement = z.object({
2322
2331
  verify: z.string().optional(),
2323
2332
  });
2324
2333
  export const zSpecEnvironmentEntry = z.object({
2325
- ref: z
2326
- .object({
2327
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
2328
- })
2329
- .optional(),
2334
+ preset: zPresetTemplate.optional(),
2330
2335
  def: zSpecEnvironmentDef.optional(),
2331
2336
  requirements: z.array(zSpecRequirement).optional(),
2332
2337
  notes: z.string().optional(),
@@ -2339,10 +2344,6 @@ export const zSpecCronTriggerEntry = z.object({
2339
2344
  })
2340
2345
  .optional(),
2341
2346
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2342
- agent: z
2343
- .string()
2344
- .regex(/^[a-z0-9][a-z0-9-]*$/)
2345
- .optional(),
2346
2347
  schedule: z.string(),
2347
2348
  timezone: z.string().optional(),
2348
2349
  until: z.iso
@@ -2350,6 +2351,7 @@ export const zSpecCronTriggerEntry = z.object({
2350
2351
  .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))$/)
2351
2352
  .optional(),
2352
2353
  inputMessage: z.string(),
2354
+ model: z.string().optional(),
2353
2355
  enabled: z.boolean().optional(),
2354
2356
  requirements: z.array(zSpecRequirement).optional(),
2355
2357
  notes: z.string().optional(),
@@ -2357,12 +2359,14 @@ export const zSpecCronTriggerEntry = z.object({
2357
2359
  export const zSpecProjectDef = z.object({
2358
2360
  name: z.string(),
2359
2361
  description: z.string().optional(),
2362
+ icon: z.string().optional(),
2360
2363
  instructions: z.string().optional(),
2361
2364
  references: zProjectReferences.optional(),
2362
- agents: z.array(zSpecProjectAgent).optional(),
2363
2365
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2364
2366
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2365
2367
  permission: zPermissionConfig.optional(),
2368
+ defaultModel: z.string().optional(),
2369
+ gitRepos: z.array(zProjectGitRepo).optional(),
2366
2370
  buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
2367
2371
  });
2368
2372
  export const zSpecProjectEntry = z.object({
@@ -2376,8 +2380,16 @@ export const zSpecProjectEntry = z.object({
2376
2380
  export const zSpecMcpDef = z.object({
2377
2381
  name: z.string(),
2378
2382
  registrySlug: z.string().optional(),
2383
+ type: z.enum(["local", "remote"]).optional(),
2379
2384
  remoteUrl: z.url().optional(),
2380
2385
  auth: z.enum(["oauth", "basic", "api_key", "none", "mcp_provider"]).optional(),
2386
+ timeout: z.int().gt(0).lte(9007199254740991).optional(),
2387
+ requiredCredentials: z
2388
+ .array(z.object({
2389
+ name: z.string(),
2390
+ description: z.string().optional(),
2391
+ }))
2392
+ .optional(),
2381
2393
  });
2382
2394
  export const zSpecMcpEntry = z.object({
2383
2395
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
@@ -2398,21 +2410,6 @@ export const zSpecSkillEntry = z.object({
2398
2410
  requirements: z.array(zSpecRequirement).optional(),
2399
2411
  notes: z.string().optional(),
2400
2412
  });
2401
- export const zSpecAgentDef = z.object({
2402
- name: z.string(),
2403
- model: z.string().optional(),
2404
- scope: z.enum(["org", "user", "registry"]).optional(),
2405
- promptIntent: z.string().optional(),
2406
- skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2407
- mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2408
- });
2409
- export const zSpecAgentEntry = z.object({
2410
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2411
- ref: zSpecRef.optional(),
2412
- def: zSpecAgentDef.optional(),
2413
- requirements: z.array(zSpecRequirement).optional(),
2414
- notes: z.string().optional(),
2415
- });
2416
2413
  export const zSpecBrief = z.object({
2417
2414
  goal: z.string(),
2418
2415
  scope: z.string().optional(),
@@ -2428,12 +2425,12 @@ export const zSpecMeta = z.object({
2428
2425
  notes: z.string().optional(),
2429
2426
  });
2430
2427
  export const zSpec = z.object({
2431
- schemaVersion: z.literal(2),
2428
+ schemaVersion: z.literal(3),
2432
2429
  meta: zSpecMeta,
2433
2430
  brief: zSpecBrief.optional(),
2431
+ pod: zSpecPod.optional(),
2434
2432
  instructions: z.string().optional(),
2435
2433
  initialPrompt: zSpecInitialPrompt.optional(),
2436
- agents: z.array(zSpecAgentEntry),
2437
2434
  skills: z.array(zSpecSkillEntry),
2438
2435
  mcps: z.array(zSpecMcpEntry),
2439
2436
  projects: z.array(zSpecProjectEntry),
@@ -2443,6 +2440,12 @@ export const zSpec = z.object({
2443
2440
  export const zBlueprint = z.object({
2444
2441
  id: z.string(),
2445
2442
  slug: z.string(),
2443
+ kind: zBlueprintKind,
2444
+ type: zBlueprintType.nullable(),
2445
+ brandColor: z
2446
+ .string()
2447
+ .regex(/^#[0-9a-f]{6}$/)
2448
+ .nullable(),
2446
2449
  name: z.string(),
2447
2450
  description: z.string().nullable(),
2448
2451
  orgId: z.string(),
@@ -2450,7 +2453,8 @@ export const zBlueprint = z.object({
2450
2453
  publisherId: z.string().nullable(),
2451
2454
  template: zSpec,
2452
2455
  replays: z.array(z.string()),
2453
- pageContent: zBlueprintPageContent.nullable(),
2456
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6),
2457
+ composition: zBlueprintComposition.nullable(),
2454
2458
  websiteMetadata: zWebsiteMetadata.nullable(),
2455
2459
  createdAt: z.iso
2456
2460
  .datetime()
@@ -2637,7 +2641,7 @@ export const zAgentCreateBody = z.object({
2637
2641
  name: z.string().min(1).max(256),
2638
2642
  icon: z.string().nullish().default(null),
2639
2643
  tags: z.array(z.string()).nullish(),
2640
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2644
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2641
2645
  version: z
2642
2646
  .union([z.string(), z.enum(["major", "minor", "patch"])])
2643
2647
  .optional()
@@ -2799,11 +2803,10 @@ export const zBlueprintCreateBody = z.object({
2799
2803
  name: z.string().min(1).max(256),
2800
2804
  description: z.string().optional().default(""),
2801
2805
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
2802
- pageContent: zBlueprintPageContent.nullish().default(null),
2803
2806
  instructions: z.string().optional(),
2804
2807
  initialPrompt: zSpecInitialPrompt.optional(),
2805
2808
  selection: zBlueprintSelection,
2806
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2809
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2807
2810
  });
2808
2811
  /**
2809
2812
  * Created blueprint
@@ -2811,8 +2814,18 @@ export const zBlueprintCreateBody = z.object({
2811
2814
  export const zBlueprintCreateResponse = zBlueprint;
2812
2815
  export const zBlueprintPushBody = z.object({
2813
2816
  id: z.string().optional(),
2817
+ slug: z.string().optional(),
2814
2818
  name: z.string().min(1).max(256).optional(),
2815
2819
  description: z.string().optional(),
2820
+ kind: zBlueprintKind.optional(),
2821
+ type: zBlueprintType.nullish(),
2822
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6).optional(),
2823
+ brandColor: z
2824
+ .string()
2825
+ .regex(/^#[0-9a-f]{6}$/)
2826
+ .nullish(),
2827
+ composition: zBlueprintComposition.nullish(),
2828
+ websiteMetadata: zWebsiteMetadata.nullish(),
2816
2829
  spec: zSpec,
2817
2830
  });
2818
2831
  /**
@@ -2835,7 +2848,6 @@ export const zBlueprintUpdateBody = z.object({
2835
2848
  name: z.string().min(1).max(256).optional(),
2836
2849
  description: z.string().optional(),
2837
2850
  websiteMetadata: zWebsiteMetadata.nullish(),
2838
- pageContent: zBlueprintPageContent.nullish(),
2839
2851
  instructions: z.string().optional(),
2840
2852
  initialPrompt: zSpecInitialPrompt.nullish(),
2841
2853
  selection: zBlueprintSelection.optional(),
@@ -2888,10 +2900,49 @@ export const zBillingGetResponse = z.object({
2888
2900
  consumedAmountCents: z.number(),
2889
2901
  grantedCredits: z.string(),
2890
2902
  freeGrantCredits: z.string(),
2891
- plan: z.enum(["free", "plan_100", "plan_200"]),
2903
+ plan: z.enum([
2904
+ "free",
2905
+ "plan_50",
2906
+ "plan_75",
2907
+ "plan_100",
2908
+ "plan_150",
2909
+ "plan_200",
2910
+ "plan_300",
2911
+ "plan_400",
2912
+ "plan_500",
2913
+ "plan_750",
2914
+ "plan_1000",
2915
+ "plan_1500",
2916
+ "plan_2000",
2917
+ "plan_3000",
2918
+ "plan_4000",
2919
+ "plan_5000",
2920
+ "plan_7500",
2921
+ "plan_10000",
2922
+ ]),
2892
2923
  planStatus: z.string().nullable(),
2893
2924
  renewsAt: z.string().nullable(),
2894
- pendingPlan: z.enum(["plan_100", "plan_200"]).nullable(),
2925
+ pendingPlan: z
2926
+ .enum([
2927
+ "plan_50",
2928
+ "plan_75",
2929
+ "plan_100",
2930
+ "plan_150",
2931
+ "plan_200",
2932
+ "plan_300",
2933
+ "plan_400",
2934
+ "plan_500",
2935
+ "plan_750",
2936
+ "plan_1000",
2937
+ "plan_1500",
2938
+ "plan_2000",
2939
+ "plan_3000",
2940
+ "plan_4000",
2941
+ "plan_5000",
2942
+ "plan_7500",
2943
+ "plan_10000",
2944
+ ])
2945
+ .nullable(),
2895
2946
  });
2896
2947
  export const zBillingUsageQuery = z.object({
2897
2948
  groupBy: z
@@ -2946,18 +2997,53 @@ export const zBillingInvoicePaymentUrlResponse = z.object({
2946
2997
  * Subscription plans
2947
2998
  */
2948
2999
  export const zBillingPlansResponse = z.array(z.object({
2949
- key: z.enum(["plan_100", "plan_200"]),
3000
+ key: z.enum([
3001
+ "plan_50",
3002
+ "plan_75",
3003
+ "plan_100",
3004
+ "plan_150",
3005
+ "plan_200",
3006
+ "plan_300",
3007
+ "plan_400",
3008
+ "plan_500",
3009
+ "plan_750",
3010
+ "plan_1000",
3011
+ "plan_1500",
3012
+ "plan_2000",
3013
+ "plan_3000",
3014
+ "plan_4000",
3015
+ "plan_5000",
3016
+ "plan_7500",
3017
+ "plan_10000",
3018
+ ]),
2950
3019
  priceCents: z.number(),
2951
3020
  creditsPerCycle: z.number(),
2952
3021
  name: z.string(),
2953
3022
  description: z.string().nullable(),
2954
3023
  tagline: z.string().nullable(),
2955
- features: z.array(z.string()),
2956
3024
  badge: z.string().nullable(),
2957
3025
  sortOrder: z.number(),
2958
3026
  }));
2959
3027
  export const zBillingSubscribeBody = z.object({
2960
- plan: z.enum(["plan_100", "plan_200"]),
3028
+ plan: z.enum([
3029
+ "plan_50",
3030
+ "plan_75",
3031
+ "plan_100",
3032
+ "plan_150",
3033
+ "plan_200",
3034
+ "plan_300",
3035
+ "plan_400",
3036
+ "plan_500",
3037
+ "plan_750",
3038
+ "plan_1000",
3039
+ "plan_1500",
3040
+ "plan_2000",
3041
+ "plan_3000",
3042
+ "plan_4000",
3043
+ "plan_5000",
3044
+ "plan_7500",
3045
+ "plan_10000",
3046
+ ]),
2961
3047
  });
2962
3048
  /**
2963
3049
  * Checkout URL
@@ -2972,7 +3058,25 @@ export const zBillingPortalResponse = z.object({
2972
3058
  url: z.string(),
2973
3059
  });
2974
3060
  export const zBillingChangePlanBody = z.object({
2975
- plan: z.enum(["plan_100", "plan_200"]),
3061
+ plan: z.enum([
3062
+ "plan_50",
3063
+ "plan_75",
3064
+ "plan_100",
3065
+ "plan_150",
3066
+ "plan_200",
3067
+ "plan_300",
3068
+ "plan_400",
3069
+ "plan_500",
3070
+ "plan_750",
3071
+ "plan_1000",
3072
+ "plan_1500",
3073
+ "plan_2000",
3074
+ "plan_3000",
3075
+ "plan_4000",
3076
+ "plan_5000",
3077
+ "plan_7500",
3078
+ "plan_10000",
3079
+ ]),
2976
3080
  });
2977
3081
  /**
2978
3082
  * Plan change started; checkoutUrl is set when the customer must authenticate the charge
@@ -3018,7 +3122,7 @@ export const zEnvironmentCreateBody = z.object({
3018
3122
  cpuCount: zTemplateCpuCount.optional(),
3019
3123
  memoryMB: zTemplateMemoryMb.optional(),
3020
3124
  buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional().default([]),
3021
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3125
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3022
3126
  });
3023
3127
  /**
3024
3128
  * Created environment
@@ -3081,12 +3185,10 @@ export const zEnvironmentArchivePath = z.object({
3081
3185
  */
3082
3186
  export const zEnvironmentArchiveResponse = zEnvironment;
3083
3187
  export const zFileStoreListQuery = z.object({
3084
- orgId: z.string().optional(),
3085
3188
  limit: z.int().gte(1).lte(1000).optional(),
3086
3189
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3087
3190
  includeDeprecated: z.boolean().optional(),
3088
- userId: z.string().nullish(),
3089
- visibility: z.enum(["private", "pod", "org"]).optional(),
3191
+ visibility: z.enum(["private", "org"]).optional(),
3090
3192
  });
3091
3193
  /**
3092
3194
  * List of file stores
@@ -3096,7 +3198,7 @@ export const zFileStoreCreateBody = z.object({
3096
3198
  name: z.string().min(1).max(256),
3097
3199
  description: z.string().optional().default(""),
3098
3200
  isDefault: z.boolean().optional().default(false),
3099
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3201
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3100
3202
  });
3101
3203
  /**
3102
3204
  * Created file store
@@ -3387,8 +3489,9 @@ export const zMcpCreateBody = z.object({
3387
3489
  prompts: z.array(z.string()).optional().default([]),
3388
3490
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional().default("none"),
3389
3491
  authConfig: zMcpAuthConfig.nullish().default(null),
3492
+ setup: zSetup.nullish().default(null),
3390
3493
  tags: z.array(z.string()).nullish(),
3391
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3494
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3392
3495
  allowDuplicateUrl: z.boolean().optional().default(false),
3393
3496
  });
3394
3497
  /**
@@ -3446,6 +3549,7 @@ export const zMcpUpdateBody = z.object({
3446
3549
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional(),
3447
3550
  authConfig: zMcpAuthConfig.nullish(),
3448
3551
  websiteMetadata: zWebsiteMetadata.nullish(),
3552
+ setup: zSetup.nullish(),
3449
3553
  tags: z.array(z.string()).nullish(),
3450
3554
  });
3451
3555
  export const zMcpUpdatePath = z.object({
@@ -3512,12 +3616,10 @@ export const zMeCompleteOnboardingBody = z.object({
3512
3616
  */
3513
3617
  export const zMeCompleteOnboardingResponse = zOnboardingComplete;
3514
3618
  export const zMemoryStoreListQuery = z.object({
3515
- orgId: z.string().optional(),
3516
3619
  limit: z.int().gte(1).lte(1000).optional(),
3517
3620
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3518
3621
  includeDeprecated: z.boolean().optional(),
3519
- userId: z.string().nullish(),
3520
- visibility: z.enum(["private", "pod", "org"]).optional(),
3622
+ visibility: z.enum(["private", "org"]).optional(),
3521
3623
  });
3522
3624
  /**
3523
3625
  * List of memory stores
@@ -3527,7 +3629,7 @@ export const zMemoryStoreCreateBody = z.object({
3527
3629
  name: z.string().min(1).max(256),
3528
3630
  description: z.string().optional().default(""),
3529
3631
  isDefault: z.boolean().optional().default(false),
3530
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3632
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3531
3633
  });
3532
3634
  /**
3533
3635
  * Created memory store
@@ -3711,7 +3813,7 @@ export const zPodCreateBody = z.object({
3711
3813
  isDefault: z.boolean().optional().default(false),
3712
3814
  presetTemplate: zPresetTemplate.optional(),
3713
3815
  createDefaultProject: z.boolean().optional().default(true),
3714
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3816
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3715
3817
  });
3716
3818
  /**
3717
3819
  * Created pod with freshly provisioned sandbox
@@ -3964,7 +4066,7 @@ export const zProjectCreateBody = z.object({
3964
4066
  permission: zPermissionConfig.optional(),
3965
4067
  gitRepos: z.array(zProjectGitRepo).optional().default([]),
3966
4068
  references: zProjectReferences.optional(),
3967
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4069
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3968
4070
  });
3969
4071
  /**
3970
4072
  * Created project
@@ -4229,7 +4331,7 @@ export const zReplayCreateBody = z.object({
4229
4331
  publisherId: z.string().nullish().default(null),
4230
4332
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
4231
4333
  shareToken: z.string().nullish().default(null),
4232
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4334
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4233
4335
  });
4234
4336
  /**
4235
4337
  * Created
@@ -4450,6 +4552,7 @@ export const zSkillCreateBody = z.object({
4450
4552
  docUrl: z.url().nullish().default(null),
4451
4553
  repository: zRepository.nullish().default(null),
4452
4554
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
4555
+ setup: zSetup.nullish().default(null),
4453
4556
  version: z.string().optional(),
4454
4557
  releaseNotes: z.string().optional(),
4455
4558
  requiredCredentials: z.array(zSkillRequiredCredential).optional(),
@@ -4471,7 +4574,7 @@ export const zSkillCreateBody = z.object({
4471
4574
  path: z.string().optional(),
4472
4575
  })
4473
4576
  .optional(),
4474
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4577
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4475
4578
  });
4476
4579
  /**
4477
4580
  * Created skill
@@ -4498,6 +4601,7 @@ export const zSkillUpdateBody = z.object({
4498
4601
  docUrl: z.string().nullish(),
4499
4602
  repository: zRepository.nullish(),
4500
4603
  websiteMetadata: zWebsiteMetadata.nullish(),
4604
+ setup: zSetup.nullish(),
4501
4605
  tags: z.array(z.string()).nullish(),
4502
4606
  });
4503
4607
  export const zSkillUpdatePath = z.object({
@@ -4514,6 +4618,19 @@ export const zSkillArchivePath = z.object({
4514
4618
  * Archived skill with the blast radius of agents and projects that referenced it
4515
4619
  */
4516
4620
  export const zSkillArchiveResponse = zSkillArchiveResult;
4621
+ export const zSkillSourceUpdateBody = z.object({
4622
+ type: z.literal("git"),
4623
+ url: z.url(),
4624
+ ref: z.string().optional(),
4625
+ path: z.string().optional(),
4626
+ });
4627
+ export const zSkillSourceUpdatePath = z.object({
4628
+ id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
4629
+ });
4630
+ /**
4631
+ * Updated skill
4632
+ */
4633
+ export const zSkillSourceUpdateResponse = zSkill;
4517
4634
  export const zSkillPublishPath = z.object({
4518
4635
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
4519
4636
  });
@@ -4541,7 +4658,7 @@ export const zSkillUndeprecateResponse = zSkill;
4541
4658
  export const zSkillCopyBody = z.object({
4542
4659
  name: z.string(),
4543
4660
  version: z.string().optional(),
4544
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4661
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4545
4662
  });
4546
4663
  export const zSkillCopyPath = z.object({
4547
4664
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -4672,6 +4789,7 @@ export const zCronTriggerListResponse = z.array(zCronTrigger);
4672
4789
  export const zCronTriggerCreateBody = z.object({
4673
4790
  projectAgentId: z.string().nullish().default(null),
4674
4791
  inputMessage: z.string(),
4792
+ model: z.string().nullish().default(null),
4675
4793
  schedule: z.string(),
4676
4794
  timezone: z.string().optional().default("UTC"),
4677
4795
  until: z.iso
@@ -4699,6 +4817,7 @@ export const zCronTriggerGetResponse = zCronTriggerDetail;
4699
4817
  export const zCronTriggerUpdateBody = z.object({
4700
4818
  projectAgentId: z.string().nullish(),
4701
4819
  inputMessage: z.string().optional(),
4820
+ model: z.string().nullish(),
4702
4821
  schedule: z.string().optional(),
4703
4822
  timezone: z.string().optional(),
4704
4823
  until: z.iso