@renai-labs/sdk 0.1.22 → 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(),
@@ -1163,155 +1169,6 @@ export const zSessionFilesPresignUploadResponse = z.object({
1163
1169
  .datetime()
1164
1170
  .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))$/),
1165
1171
  });
1166
- export const zAuthRequirementEnvSource = z.object({
1167
- kind: z.enum(["skill", "mcp"]),
1168
- id: z.string(),
1169
- name: z.string(),
1170
- });
1171
- export const zAuthRequirementEnv = z.union([
1172
- z.object({
1173
- kind: z.literal("env").optional().default("env"),
1174
- name: z
1175
- .string()
1176
- .min(1)
1177
- .max(128)
1178
- .regex(/^[A-Z_][A-Z0-9_]*$/),
1179
- description: z.string().max(512).optional(),
1180
- satisfied: z.boolean(),
1181
- neededBy: z.array(zAuthRequirementEnvSource),
1182
- }),
1183
- z.object({
1184
- kind: z.literal("secret"),
1185
- name: z
1186
- .string()
1187
- .min(1)
1188
- .max(64)
1189
- .regex(/^[a-z][A-Za-z0-9_]*$/),
1190
- description: z.string().max(512).optional(),
1191
- satisfied: z.boolean(),
1192
- neededBy: z.array(zAuthRequirementEnvSource),
1193
- }),
1194
- z.object({
1195
- kind: z.literal("oauth_app"),
1196
- name: z.string().min(1).max(128),
1197
- description: z.string().max(512).optional(),
1198
- satisfied: z.boolean(),
1199
- neededBy: z.array(zAuthRequirementEnvSource),
1200
- }),
1201
- z.object({
1202
- kind: z.literal("text"),
1203
- name: z
1204
- .string()
1205
- .min(1)
1206
- .max(64)
1207
- .regex(/^[a-z][A-Za-z0-9_]*$/),
1208
- description: z.string().max(512).optional(),
1209
- message: z.string().min(1).max(512),
1210
- placeholder: z.string().max(256).optional(),
1211
- when: zRequirementWhen.optional(),
1212
- satisfied: z.boolean(),
1213
- neededBy: z.array(zAuthRequirementEnvSource),
1214
- }),
1215
- z.object({
1216
- kind: z.literal("select"),
1217
- name: z
1218
- .string()
1219
- .min(1)
1220
- .max(64)
1221
- .regex(/^[a-z][A-Za-z0-9_]*$/),
1222
- description: z.string().max(512).optional(),
1223
- message: z.string().min(1).max(512),
1224
- options: z
1225
- .array(z.object({
1226
- label: z.string().min(1).max(256),
1227
- value: z.string().max(512),
1228
- hint: z.string().max(256).optional(),
1229
- }))
1230
- .min(1)
1231
- .max(64),
1232
- when: zRequirementWhen.optional(),
1233
- satisfied: z.boolean(),
1234
- neededBy: z.array(zAuthRequirementEnvSource),
1235
- }),
1236
- ]);
1237
- export const zMcpAuthConfig = z.union([
1238
- z.object({
1239
- type: z.literal("oauth"),
1240
- scopes: z.array(z.string().min(1).max(256)).optional(),
1241
- tokenEndpoint: z.string().optional(),
1242
- authorizationEndpoint: z.string().optional(),
1243
- tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
1244
- oauthAppName: z.string().min(1).max(128).optional(),
1245
- }),
1246
- z.object({
1247
- type: z.literal("header"),
1248
- headers: z
1249
- .array(z.object({
1250
- name: z
1251
- .string()
1252
- .min(1)
1253
- .max(128)
1254
- .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/),
1255
- template: z.string().min(1).max(512),
1256
- }))
1257
- .max(8)
1258
- .optional()
1259
- .default([]),
1260
- queryParams: z
1261
- .array(z.object({
1262
- name: z
1263
- .string()
1264
- .min(1)
1265
- .max(128)
1266
- .regex(/^[A-Za-z0-9._~-]+$/),
1267
- template: z.string().min(1).max(512),
1268
- }))
1269
- .max(8)
1270
- .optional()
1271
- .default([]),
1272
- }),
1273
- z.object({
1274
- type: z.literal("api_key"),
1275
- headerName: z
1276
- .string()
1277
- .min(1)
1278
- .max(128)
1279
- .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/)
1280
- .optional(),
1281
- queryParam: z
1282
- .string()
1283
- .min(1)
1284
- .max(128)
1285
- .regex(/^[A-Za-z0-9._~-]+$/)
1286
- .optional(),
1287
- }),
1288
- z.object({
1289
- type: z.literal("basic"),
1290
- }),
1291
- z.object({
1292
- type: z.literal("none"),
1293
- }),
1294
- z.object({
1295
- type: z.literal("mcp_provider"),
1296
- provider: z.enum(["composio"]),
1297
- toolkit: z.string(),
1298
- authConfigId: z.string(),
1299
- }),
1300
- ]);
1301
- export const zAuthRequirementMcp = z.object({
1302
- mcpId: z.string(),
1303
- slug: z.string(),
1304
- name: z.string(),
1305
- icon: z.string().nullable(),
1306
- authType: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]),
1307
- authConfig: zMcpAuthConfig.nullable(),
1308
- satisfied: z.boolean(),
1309
- neededByAgentIds: z.array(z.string()),
1310
- });
1311
- export const zAuthRequirements = z.object({
1312
- mcps: z.array(zAuthRequirementMcp),
1313
- envs: z.array(zAuthRequirementEnv),
1314
- });
1315
1172
  export const zSessionTracesResponse = z.object({
1316
1173
  configured: z.boolean(),
1317
1174
  traces: z.array(z.record(z.string(), z.unknown())),
@@ -1386,6 +1243,8 @@ export const zOpencodeSession = z.object({
1386
1243
  });
1387
1244
  export const zSessionCreateStatus = z.union([
1388
1245
  z.object({
1246
+ podId: z.string(),
1247
+ projectId: z.string().nullable(),
1389
1248
  status: z.literal("pending"),
1390
1249
  phase: z.enum([
1391
1250
  "waiting-sandbox",
@@ -1398,10 +1257,14 @@ export const zSessionCreateStatus = z.union([
1398
1257
  ]),
1399
1258
  }),
1400
1259
  z.object({
1260
+ podId: z.string(),
1261
+ projectId: z.string().nullable(),
1401
1262
  status: z.literal("ready"),
1402
1263
  sessionId: z.string(),
1403
1264
  }),
1404
1265
  z.object({
1266
+ podId: z.string(),
1267
+ projectId: z.string().nullable(),
1405
1268
  status: z.literal("failed"),
1406
1269
  reason: z.string(),
1407
1270
  }),
@@ -1548,6 +1411,7 @@ export const zProject = z.object({
1548
1411
  userId: z.string().nullable(),
1549
1412
  podId: z.string(),
1550
1413
  name: z.string(),
1414
+ icon: z.string().nullable(),
1551
1415
  description: z.string().nullable(),
1552
1416
  slug: z.string(),
1553
1417
  defaultModel: z.string().nullable(),
@@ -1656,6 +1520,161 @@ export const zPodSandboxProvisionResponse = z.object({
1656
1520
  workflowId: z.string(),
1657
1521
  status: z.literal("provisioning"),
1658
1522
  });
1523
+ export const zAuthRequirementEnvSource = z.object({
1524
+ kind: z.enum(["skill", "mcp"]),
1525
+ id: z.string(),
1526
+ name: z.string(),
1527
+ });
1528
+ export const zAuthRequirementEnv = z.union([
1529
+ z.object({
1530
+ kind: z.literal("env").optional().default("env"),
1531
+ name: z
1532
+ .string()
1533
+ .min(1)
1534
+ .max(128)
1535
+ .regex(/^[A-Z_][A-Z0-9_]*$/),
1536
+ description: z.string().max(512).optional(),
1537
+ satisfied: z.boolean(),
1538
+ neededBy: z.array(zAuthRequirementEnvSource),
1539
+ setup: zSetup.nullable(),
1540
+ }),
1541
+ z.object({
1542
+ kind: z.literal("secret"),
1543
+ name: z
1544
+ .string()
1545
+ .min(1)
1546
+ .max(64)
1547
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1548
+ description: z.string().max(512).optional(),
1549
+ satisfied: z.boolean(),
1550
+ neededBy: z.array(zAuthRequirementEnvSource),
1551
+ setup: zSetup.nullable(),
1552
+ }),
1553
+ z.object({
1554
+ kind: z.literal("oauth_app"),
1555
+ name: z.string().min(1).max(128),
1556
+ description: z.string().max(512).optional(),
1557
+ satisfied: z.boolean(),
1558
+ neededBy: z.array(zAuthRequirementEnvSource),
1559
+ setup: zSetup.nullable(),
1560
+ }),
1561
+ z.object({
1562
+ kind: z.literal("text"),
1563
+ name: z
1564
+ .string()
1565
+ .min(1)
1566
+ .max(64)
1567
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1568
+ description: z.string().max(512).optional(),
1569
+ message: z.string().min(1).max(512),
1570
+ placeholder: z.string().max(256).optional(),
1571
+ when: zRequirementWhen.optional(),
1572
+ satisfied: z.boolean(),
1573
+ neededBy: z.array(zAuthRequirementEnvSource),
1574
+ setup: zSetup.nullable(),
1575
+ }),
1576
+ z.object({
1577
+ kind: z.literal("select"),
1578
+ name: z
1579
+ .string()
1580
+ .min(1)
1581
+ .max(64)
1582
+ .regex(/^[a-z][A-Za-z0-9_]*$/),
1583
+ description: z.string().max(512).optional(),
1584
+ message: z.string().min(1).max(512),
1585
+ options: z
1586
+ .array(z.object({
1587
+ label: z.string().min(1).max(256),
1588
+ value: z.string().max(512),
1589
+ hint: z.string().max(256).optional(),
1590
+ }))
1591
+ .min(1)
1592
+ .max(64),
1593
+ when: zRequirementWhen.optional(),
1594
+ satisfied: z.boolean(),
1595
+ neededBy: z.array(zAuthRequirementEnvSource),
1596
+ setup: zSetup.nullable(),
1597
+ }),
1598
+ ]);
1599
+ export const zMcpAuthConfig = z.union([
1600
+ z.object({
1601
+ type: z.literal("oauth"),
1602
+ scopes: z.array(z.string().min(1).max(256)).optional(),
1603
+ tokenEndpoint: z.string().optional(),
1604
+ authorizationEndpoint: z.string().optional(),
1605
+ tokenEndpointAuth: z.enum(["none", "client_secret_basic", "client_secret_post"]).optional(),
1606
+ oauthAppName: z.string().min(1).max(128).optional(),
1607
+ }),
1608
+ z.object({
1609
+ type: z.literal("header"),
1610
+ headers: z
1611
+ .array(z.object({
1612
+ name: z
1613
+ .string()
1614
+ .min(1)
1615
+ .max(128)
1616
+ .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/),
1617
+ template: z.string().min(1).max(512),
1618
+ }))
1619
+ .max(8)
1620
+ .optional()
1621
+ .default([]),
1622
+ queryParams: z
1623
+ .array(z.object({
1624
+ name: z
1625
+ .string()
1626
+ .min(1)
1627
+ .max(128)
1628
+ .regex(/^[A-Za-z0-9._~-]+$/),
1629
+ template: z.string().min(1).max(512),
1630
+ }))
1631
+ .max(8)
1632
+ .optional()
1633
+ .default([]),
1634
+ }),
1635
+ z.object({
1636
+ type: z.literal("api_key"),
1637
+ headerName: z
1638
+ .string()
1639
+ .min(1)
1640
+ .max(128)
1641
+ .regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/)
1642
+ .optional(),
1643
+ queryParam: z
1644
+ .string()
1645
+ .min(1)
1646
+ .max(128)
1647
+ .regex(/^[A-Za-z0-9._~-]+$/)
1648
+ .optional(),
1649
+ }),
1650
+ z.object({
1651
+ type: z.literal("basic"),
1652
+ }),
1653
+ z.object({
1654
+ type: z.literal("none"),
1655
+ }),
1656
+ z.object({
1657
+ type: z.literal("mcp_provider"),
1658
+ provider: z.enum(["composio"]),
1659
+ toolkit: z.string(),
1660
+ authConfigId: z.string(),
1661
+ }),
1662
+ ]);
1663
+ export const zAuthRequirementMcp = z.object({
1664
+ mcpId: z.string(),
1665
+ slug: z.string(),
1666
+ name: z.string(),
1667
+ icon: z.string().nullable(),
1668
+ authType: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]),
1669
+ authConfig: zMcpAuthConfig.nullable(),
1670
+ satisfied: z.boolean(),
1671
+ neededByAgentIds: z.array(z.string()),
1672
+ setup: zSetup.nullable(),
1673
+ });
1674
+ export const zAuthRequirements = z.object({
1675
+ mcps: z.array(zAuthRequirementMcp),
1676
+ envs: z.array(zAuthRequirementEnv),
1677
+ });
1659
1678
  export const zPodResolvedCredential = z.object({
1660
1679
  credentialId: z.string(),
1661
1680
  name: z.string(),
@@ -1683,10 +1702,10 @@ export const zPodMember = z.object({
1683
1702
  .datetime()
1684
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))$/),
1685
1704
  });
1686
- export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
1687
1705
  export const zPod = z.object({
1688
1706
  id: z.string(),
1689
1707
  name: z.string(),
1708
+ icon: z.string().nullable(),
1690
1709
  slug: z.string(),
1691
1710
  description: z.string().nullable(),
1692
1711
  isPrivate: z.boolean(),
@@ -1883,6 +1902,7 @@ export const zMcp = z.object({
1883
1902
  userId: z.string().nullable(),
1884
1903
  publisherId: z.string().nullable(),
1885
1904
  websiteMetadata: zWebsiteMetadata.nullable(),
1905
+ setup: zSetup.nullable(),
1886
1906
  sortOrder: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1887
1907
  popularityScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
1888
1908
  trendingScore: z.int().gte(-9007199254740991).lte(9007199254740991).nullable(),
@@ -2259,11 +2279,10 @@ export const zBlueprintInstallRequirement = z.object({
2259
2279
  credential: z.string().optional(),
2260
2280
  });
2261
2281
  export const zBlueprintInstallReport = z.object({
2262
- agents: z.array(z.string()),
2263
2282
  skills: z.array(z.string()),
2264
2283
  mcps: z.array(z.string()),
2265
2284
  skipped: z.array(z.object({
2266
- kind: z.enum(["skill", "agent", "mcp", "project", "trigger", "environment"]),
2285
+ kind: z.enum(["skill", "mcp", "project", "trigger", "environment", "gitRepo"]),
2267
2286
  sourceId: z.string(),
2268
2287
  reason: z.string(),
2269
2288
  })),
@@ -2276,16 +2295,11 @@ export const zBlueprintInstallReport = z.object({
2276
2295
  .string()
2277
2296
  .regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/)
2278
2297
  .optional(),
2279
- agentId: z
2280
- .string()
2281
- .regex(/^agt_[0-9A-HJKMNP-TV-Z]{26}$/)
2282
- .optional(),
2283
2298
  })
2284
2299
  .optional(),
2285
2300
  });
2286
2301
  export const zBlueprintSelection = z.object({
2287
2302
  projectIds: z.array(z.string()).optional().default([]),
2288
- agentIds: z.array(z.string()).optional().default([]),
2289
2303
  skillIds: z.array(z.string()).optional().default([]),
2290
2304
  mcpIds: z.array(z.string()).optional().default([]),
2291
2305
  replayIds: z.array(z.string()).optional().default([]),
@@ -2294,6 +2308,9 @@ export const zBlueprintSelection = z.object({
2294
2308
  export const zSpecEnvironmentDef = z.object({
2295
2309
  networking: zNetworkingConfig,
2296
2310
  packages: zPackagesConfig,
2311
+ cpuCount: zTemplateCpuCount.optional(),
2312
+ memoryMB: zTemplateMemoryMb.optional(),
2313
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional(),
2297
2314
  });
2298
2315
  export const zSpecRequirement = z.object({
2299
2316
  id: z.string(),
@@ -2314,11 +2331,7 @@ export const zSpecRequirement = z.object({
2314
2331
  verify: z.string().optional(),
2315
2332
  });
2316
2333
  export const zSpecEnvironmentEntry = z.object({
2317
- ref: z
2318
- .object({
2319
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
2320
- })
2321
- .optional(),
2334
+ preset: zPresetTemplate.optional(),
2322
2335
  def: zSpecEnvironmentDef.optional(),
2323
2336
  requirements: z.array(zSpecRequirement).optional(),
2324
2337
  notes: z.string().optional(),
@@ -2331,10 +2344,6 @@ export const zSpecCronTriggerEntry = z.object({
2331
2344
  })
2332
2345
  .optional(),
2333
2346
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2334
- agent: z
2335
- .string()
2336
- .regex(/^[a-z0-9][a-z0-9-]*$/)
2337
- .optional(),
2338
2347
  schedule: z.string(),
2339
2348
  timezone: z.string().optional(),
2340
2349
  until: z.iso
@@ -2342,6 +2351,7 @@ export const zSpecCronTriggerEntry = z.object({
2342
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))$/)
2343
2352
  .optional(),
2344
2353
  inputMessage: z.string(),
2354
+ model: z.string().optional(),
2345
2355
  enabled: z.boolean().optional(),
2346
2356
  requirements: z.array(zSpecRequirement).optional(),
2347
2357
  notes: z.string().optional(),
@@ -2349,12 +2359,14 @@ export const zSpecCronTriggerEntry = z.object({
2349
2359
  export const zSpecProjectDef = z.object({
2350
2360
  name: z.string(),
2351
2361
  description: z.string().optional(),
2362
+ icon: z.string().optional(),
2352
2363
  instructions: z.string().optional(),
2353
2364
  references: zProjectReferences.optional(),
2354
- agents: z.array(zSpecProjectAgent).optional(),
2355
2365
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2356
2366
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2357
2367
  permission: zPermissionConfig.optional(),
2368
+ defaultModel: z.string().optional(),
2369
+ gitRepos: z.array(zProjectGitRepo).optional(),
2358
2370
  buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
2359
2371
  });
2360
2372
  export const zSpecProjectEntry = z.object({
@@ -2368,8 +2380,16 @@ export const zSpecProjectEntry = z.object({
2368
2380
  export const zSpecMcpDef = z.object({
2369
2381
  name: z.string(),
2370
2382
  registrySlug: z.string().optional(),
2383
+ type: z.enum(["local", "remote"]).optional(),
2371
2384
  remoteUrl: z.url().optional(),
2372
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(),
2373
2393
  });
2374
2394
  export const zSpecMcpEntry = z.object({
2375
2395
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
@@ -2390,21 +2410,6 @@ export const zSpecSkillEntry = z.object({
2390
2410
  requirements: z.array(zSpecRequirement).optional(),
2391
2411
  notes: z.string().optional(),
2392
2412
  });
2393
- export const zSpecAgentDef = z.object({
2394
- name: z.string(),
2395
- model: z.string().optional(),
2396
- scope: z.enum(["org", "user", "registry"]).optional(),
2397
- promptIntent: z.string().optional(),
2398
- skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2399
- mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2400
- });
2401
- export const zSpecAgentEntry = z.object({
2402
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2403
- ref: zSpecRef.optional(),
2404
- def: zSpecAgentDef.optional(),
2405
- requirements: z.array(zSpecRequirement).optional(),
2406
- notes: z.string().optional(),
2407
- });
2408
2413
  export const zSpecBrief = z.object({
2409
2414
  goal: z.string(),
2410
2415
  scope: z.string().optional(),
@@ -2420,12 +2425,12 @@ export const zSpecMeta = z.object({
2420
2425
  notes: z.string().optional(),
2421
2426
  });
2422
2427
  export const zSpec = z.object({
2423
- schemaVersion: z.literal(2),
2428
+ schemaVersion: z.literal(3),
2424
2429
  meta: zSpecMeta,
2425
2430
  brief: zSpecBrief.optional(),
2431
+ pod: zSpecPod.optional(),
2426
2432
  instructions: z.string().optional(),
2427
2433
  initialPrompt: zSpecInitialPrompt.optional(),
2428
- agents: z.array(zSpecAgentEntry),
2429
2434
  skills: z.array(zSpecSkillEntry),
2430
2435
  mcps: z.array(zSpecMcpEntry),
2431
2436
  projects: z.array(zSpecProjectEntry),
@@ -2435,6 +2440,12 @@ export const zSpec = z.object({
2435
2440
  export const zBlueprint = z.object({
2436
2441
  id: z.string(),
2437
2442
  slug: z.string(),
2443
+ kind: zBlueprintKind,
2444
+ type: zBlueprintType.nullable(),
2445
+ brandColor: z
2446
+ .string()
2447
+ .regex(/^#[0-9a-f]{6}$/)
2448
+ .nullable(),
2438
2449
  name: z.string(),
2439
2450
  description: z.string().nullable(),
2440
2451
  orgId: z.string(),
@@ -2442,7 +2453,8 @@ export const zBlueprint = z.object({
2442
2453
  publisherId: z.string().nullable(),
2443
2454
  template: zSpec,
2444
2455
  replays: z.array(z.string()),
2445
- pageContent: zBlueprintPageContent.nullable(),
2456
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6),
2457
+ composition: zBlueprintComposition.nullable(),
2446
2458
  websiteMetadata: zWebsiteMetadata.nullable(),
2447
2459
  createdAt: z.iso
2448
2460
  .datetime()
@@ -2629,7 +2641,7 @@ export const zAgentCreateBody = z.object({
2629
2641
  name: z.string().min(1).max(256),
2630
2642
  icon: z.string().nullish().default(null),
2631
2643
  tags: z.array(z.string()).nullish(),
2632
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2644
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2633
2645
  version: z
2634
2646
  .union([z.string(), z.enum(["major", "minor", "patch"])])
2635
2647
  .optional()
@@ -2791,11 +2803,10 @@ export const zBlueprintCreateBody = z.object({
2791
2803
  name: z.string().min(1).max(256),
2792
2804
  description: z.string().optional().default(""),
2793
2805
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
2794
- pageContent: zBlueprintPageContent.nullish().default(null),
2795
2806
  instructions: z.string().optional(),
2796
2807
  initialPrompt: zSpecInitialPrompt.optional(),
2797
2808
  selection: zBlueprintSelection,
2798
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
2809
+ visibility: z.enum(["private", "org"]).optional().default("org"),
2799
2810
  });
2800
2811
  /**
2801
2812
  * Created blueprint
@@ -2803,8 +2814,18 @@ export const zBlueprintCreateBody = z.object({
2803
2814
  export const zBlueprintCreateResponse = zBlueprint;
2804
2815
  export const zBlueprintPushBody = z.object({
2805
2816
  id: z.string().optional(),
2817
+ slug: z.string().optional(),
2806
2818
  name: z.string().min(1).max(256).optional(),
2807
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(),
2808
2829
  spec: zSpec,
2809
2830
  });
2810
2831
  /**
@@ -2827,7 +2848,6 @@ export const zBlueprintUpdateBody = z.object({
2827
2848
  name: z.string().min(1).max(256).optional(),
2828
2849
  description: z.string().optional(),
2829
2850
  websiteMetadata: zWebsiteMetadata.nullish(),
2830
- pageContent: zBlueprintPageContent.nullish(),
2831
2851
  instructions: z.string().optional(),
2832
2852
  initialPrompt: zSpecInitialPrompt.nullish(),
2833
2853
  selection: zBlueprintSelection.optional(),
@@ -2880,10 +2900,49 @@ export const zBillingGetResponse = z.object({
2880
2900
  consumedAmountCents: z.number(),
2881
2901
  grantedCredits: z.string(),
2882
2902
  freeGrantCredits: z.string(),
2883
- 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
+ ]),
2884
2923
  planStatus: z.string().nullable(),
2885
2924
  renewsAt: z.string().nullable(),
2886
- 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(),
2887
2946
  });
2888
2947
  export const zBillingUsageQuery = z.object({
2889
2948
  groupBy: z
@@ -2938,18 +2997,53 @@ export const zBillingInvoicePaymentUrlResponse = z.object({
2938
2997
  * Subscription plans
2939
2998
  */
2940
2999
  export const zBillingPlansResponse = z.array(z.object({
2941
- 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
+ ]),
2942
3019
  priceCents: z.number(),
2943
3020
  creditsPerCycle: z.number(),
2944
3021
  name: z.string(),
2945
3022
  description: z.string().nullable(),
2946
3023
  tagline: z.string().nullable(),
2947
- features: z.array(z.string()),
2948
3024
  badge: z.string().nullable(),
2949
3025
  sortOrder: z.number(),
2950
3026
  }));
2951
3027
  export const zBillingSubscribeBody = z.object({
2952
- 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
+ ]),
2953
3047
  });
2954
3048
  /**
2955
3049
  * Checkout URL
@@ -2964,7 +3058,25 @@ export const zBillingPortalResponse = z.object({
2964
3058
  url: z.string(),
2965
3059
  });
2966
3060
  export const zBillingChangePlanBody = z.object({
2967
- 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
+ ]),
2968
3080
  });
2969
3081
  /**
2970
3082
  * Plan change started; checkoutUrl is set when the customer must authenticate the charge
@@ -3010,7 +3122,7 @@ export const zEnvironmentCreateBody = z.object({
3010
3122
  cpuCount: zTemplateCpuCount.optional(),
3011
3123
  memoryMB: zTemplateMemoryMb.optional(),
3012
3124
  buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional().default([]),
3013
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3125
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3014
3126
  });
3015
3127
  /**
3016
3128
  * Created environment
@@ -3073,12 +3185,10 @@ export const zEnvironmentArchivePath = z.object({
3073
3185
  */
3074
3186
  export const zEnvironmentArchiveResponse = zEnvironment;
3075
3187
  export const zFileStoreListQuery = z.object({
3076
- orgId: z.string().optional(),
3077
3188
  limit: z.int().gte(1).lte(1000).optional(),
3078
3189
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3079
3190
  includeDeprecated: z.boolean().optional(),
3080
- userId: z.string().nullish(),
3081
- visibility: z.enum(["private", "pod", "org"]).optional(),
3191
+ visibility: z.enum(["private", "org"]).optional(),
3082
3192
  });
3083
3193
  /**
3084
3194
  * List of file stores
@@ -3088,7 +3198,7 @@ export const zFileStoreCreateBody = z.object({
3088
3198
  name: z.string().min(1).max(256),
3089
3199
  description: z.string().optional().default(""),
3090
3200
  isDefault: z.boolean().optional().default(false),
3091
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3201
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3092
3202
  });
3093
3203
  /**
3094
3204
  * Created file store
@@ -3379,8 +3489,9 @@ export const zMcpCreateBody = z.object({
3379
3489
  prompts: z.array(z.string()).optional().default([]),
3380
3490
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional().default("none"),
3381
3491
  authConfig: zMcpAuthConfig.nullish().default(null),
3492
+ setup: zSetup.nullish().default(null),
3382
3493
  tags: z.array(z.string()).nullish(),
3383
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3494
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3384
3495
  allowDuplicateUrl: z.boolean().optional().default(false),
3385
3496
  });
3386
3497
  /**
@@ -3438,6 +3549,7 @@ export const zMcpUpdateBody = z.object({
3438
3549
  auth: z.enum(["none", "oauth", "api_key", "basic", "mcp_provider"]).optional(),
3439
3550
  authConfig: zMcpAuthConfig.nullish(),
3440
3551
  websiteMetadata: zWebsiteMetadata.nullish(),
3552
+ setup: zSetup.nullish(),
3441
3553
  tags: z.array(z.string()).nullish(),
3442
3554
  });
3443
3555
  export const zMcpUpdatePath = z.object({
@@ -3504,12 +3616,10 @@ export const zMeCompleteOnboardingBody = z.object({
3504
3616
  */
3505
3617
  export const zMeCompleteOnboardingResponse = zOnboardingComplete;
3506
3618
  export const zMemoryStoreListQuery = z.object({
3507
- orgId: z.string().optional(),
3508
3619
  limit: z.int().gte(1).lte(1000).optional(),
3509
3620
  offset: z.int().gte(0).lte(9007199254740991).optional(),
3510
3621
  includeDeprecated: z.boolean().optional(),
3511
- userId: z.string().nullish(),
3512
- visibility: z.enum(["private", "pod", "org"]).optional(),
3622
+ visibility: z.enum(["private", "org"]).optional(),
3513
3623
  });
3514
3624
  /**
3515
3625
  * List of memory stores
@@ -3519,7 +3629,7 @@ export const zMemoryStoreCreateBody = z.object({
3519
3629
  name: z.string().min(1).max(256),
3520
3630
  description: z.string().optional().default(""),
3521
3631
  isDefault: z.boolean().optional().default(false),
3522
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3632
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3523
3633
  });
3524
3634
  /**
3525
3635
  * Created memory store
@@ -3695,6 +3805,7 @@ export const zPodListQuery = z.object({
3695
3805
  export const zPodListResponse = z.array(zPod);
3696
3806
  export const zPodCreateBody = z.object({
3697
3807
  name: z.string().min(1).max(256),
3808
+ icon: z.string().nullish().default(null),
3698
3809
  environmentId: z.string().nullish().default(null),
3699
3810
  description: z.string().optional().default(""),
3700
3811
  instructions: z.string().optional().default(""),
@@ -3702,7 +3813,7 @@ export const zPodCreateBody = z.object({
3702
3813
  isDefault: z.boolean().optional().default(false),
3703
3814
  presetTemplate: zPresetTemplate.optional(),
3704
3815
  createDefaultProject: z.boolean().optional().default(true),
3705
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
3816
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3706
3817
  });
3707
3818
  /**
3708
3819
  * Created pod with freshly provisioned sandbox
@@ -3717,6 +3828,7 @@ export const zPodGetPath = z.object({
3717
3828
  export const zPodGetResponse = zPod;
3718
3829
  export const zPodUpdateBody = z.object({
3719
3830
  name: z.string().min(1).max(256).optional(),
3831
+ icon: z.string().nullish(),
3720
3832
  description: z.string().optional(),
3721
3833
  isPrivate: z.boolean().optional(),
3722
3834
  environmentId: z.string().nullish(),
@@ -3789,6 +3901,13 @@ export const zPodCredentialListPath = z.object({
3789
3901
  * Resolved credentials
3790
3902
  */
3791
3903
  export const zPodCredentialListResponse = zPodCredentials;
3904
+ export const zPodAuthRequirementsPath = z.object({
3905
+ id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3906
+ });
3907
+ /**
3908
+ * Required credentials and whether each is satisfied
3909
+ */
3910
+ export const zPodAuthRequirementsResponse = zAuthRequirements;
3792
3911
  export const zPodSandboxProvisionPath = z.object({
3793
3912
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3794
3913
  });
@@ -3941,12 +4060,13 @@ export const zProjectListResponse = z.array(zProject);
3941
4060
  export const zProjectCreateBody = z.object({
3942
4061
  podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3943
4062
  name: z.string().min(1).max(256),
4063
+ icon: z.string().nullish().default(null),
3944
4064
  description: z.string().optional().default(""),
3945
4065
  instructions: z.string().optional().default(""),
3946
4066
  permission: zPermissionConfig.optional(),
3947
4067
  gitRepos: z.array(zProjectGitRepo).optional().default([]),
3948
4068
  references: zProjectReferences.optional(),
3949
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4069
+ visibility: z.enum(["private", "org"]).optional().default("org"),
3950
4070
  });
3951
4071
  /**
3952
4072
  * Created project
@@ -3961,6 +4081,7 @@ export const zProjectGetPath = z.object({
3961
4081
  export const zProjectGetResponse = zProject;
3962
4082
  export const zProjectUpdateBody = z.object({
3963
4083
  name: z.string().min(1).max(256).optional(),
4084
+ icon: z.string().nullish(),
3964
4085
  description: z.string().optional(),
3965
4086
  permission: zPermissionConfig.optional(),
3966
4087
  gitRepos: z.array(zProjectGitRepo).optional(),
@@ -4210,7 +4331,7 @@ export const zReplayCreateBody = z.object({
4210
4331
  publisherId: z.string().nullish().default(null),
4211
4332
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
4212
4333
  shareToken: z.string().nullish().default(null),
4213
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4334
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4214
4335
  });
4215
4336
  /**
4216
4337
  * Created
@@ -4431,6 +4552,7 @@ export const zSkillCreateBody = z.object({
4431
4552
  docUrl: z.url().nullish().default(null),
4432
4553
  repository: zRepository.nullish().default(null),
4433
4554
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
4555
+ setup: zSetup.nullish().default(null),
4434
4556
  version: z.string().optional(),
4435
4557
  releaseNotes: z.string().optional(),
4436
4558
  requiredCredentials: z.array(zSkillRequiredCredential).optional(),
@@ -4452,7 +4574,7 @@ export const zSkillCreateBody = z.object({
4452
4574
  path: z.string().optional(),
4453
4575
  })
4454
4576
  .optional(),
4455
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4577
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4456
4578
  });
4457
4579
  /**
4458
4580
  * Created skill
@@ -4479,6 +4601,7 @@ export const zSkillUpdateBody = z.object({
4479
4601
  docUrl: z.string().nullish(),
4480
4602
  repository: zRepository.nullish(),
4481
4603
  websiteMetadata: zWebsiteMetadata.nullish(),
4604
+ setup: zSetup.nullish(),
4482
4605
  tags: z.array(z.string()).nullish(),
4483
4606
  });
4484
4607
  export const zSkillUpdatePath = z.object({
@@ -4495,6 +4618,19 @@ export const zSkillArchivePath = z.object({
4495
4618
  * Archived skill with the blast radius of agents and projects that referenced it
4496
4619
  */
4497
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;
4498
4634
  export const zSkillPublishPath = z.object({
4499
4635
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
4500
4636
  });
@@ -4522,7 +4658,7 @@ export const zSkillUndeprecateResponse = zSkill;
4522
4658
  export const zSkillCopyBody = z.object({
4523
4659
  name: z.string(),
4524
4660
  version: z.string().optional(),
4525
- visibility: z.enum(["private", "pod", "org"]).optional().default("org"),
4661
+ visibility: z.enum(["private", "org"]).optional().default("org"),
4526
4662
  });
4527
4663
  export const zSkillCopyPath = z.object({
4528
4664
  id: z.string().regex(/^skl_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -4653,6 +4789,7 @@ export const zCronTriggerListResponse = z.array(zCronTrigger);
4653
4789
  export const zCronTriggerCreateBody = z.object({
4654
4790
  projectAgentId: z.string().nullish().default(null),
4655
4791
  inputMessage: z.string(),
4792
+ model: z.string().nullish().default(null),
4656
4793
  schedule: z.string(),
4657
4794
  timezone: z.string().optional().default("UTC"),
4658
4795
  until: z.iso
@@ -4680,6 +4817,7 @@ export const zCronTriggerGetResponse = zCronTriggerDetail;
4680
4817
  export const zCronTriggerUpdateBody = z.object({
4681
4818
  projectAgentId: z.string().nullish(),
4682
4819
  inputMessage: z.string().optional(),
4820
+ model: z.string().nullish(),
4683
4821
  schedule: z.string().optional(),
4684
4822
  timezone: z.string().optional(),
4685
4823
  until: z.iso