@renai-labs/sdk 0.1.24 → 0.1.25

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.
@@ -79,15 +79,29 @@ export const zReplayPublicView = z.object({
79
79
  session: zReplayPublicSession,
80
80
  messages: z.array(zReplayMessage),
81
81
  });
82
- export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
83
- export const zSpecPublicTriggerEntry = z.object({
82
+ /**
83
+ * Prompt the client auto-inserts into a new chat post-add.
84
+ */
85
+ export const zSpecInitialPrompt = z.object({
86
+ prompt: z.string(),
87
+ project: z
88
+ .string()
89
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
90
+ .optional(),
91
+ });
92
+ /**
93
+ * Model this trigger's fires run on; absent inherits the agent/project default.
94
+ */
95
+ export const zModelSelection = z.object({
96
+ model: z.string().min(1),
97
+ variant: z.string().min(1).nullish().default(null),
98
+ });
99
+ export const zSpecCronTriggerEntry = z.object({
84
100
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
85
- ref: z
86
- .object({
87
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
88
- })
101
+ project: z
102
+ .string()
103
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
89
104
  .optional(),
90
- project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
91
105
  schedule: z.string(),
92
106
  timezone: z.string().optional(),
93
107
  until: z.iso
@@ -95,9 +109,20 @@ export const zSpecPublicTriggerEntry = z.object({
95
109
  .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
110
  .optional(),
97
111
  inputMessage: z.string(),
98
- model: z.string().optional(),
112
+ model: zModelSelection.optional(),
99
113
  enabled: z.boolean().optional(),
100
114
  });
115
+ export const zSpecRef = z.object({
116
+ id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
117
+ });
118
+ export const zSpecMcpEntry = z.object({
119
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
120
+ ref: zSpecRef,
121
+ });
122
+ export const zSpecSkillEntry = z.object({
123
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
124
+ ref: zSpecRef,
125
+ });
101
126
  export const zSpecChannelBinding = z.object({
102
127
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
103
128
  kind: z.enum(["slack", "linear", "github", "telegram", "email"]),
@@ -118,70 +143,95 @@ export const zProjectReference = z.union([
118
143
  }),
119
144
  ]);
120
145
  export const zProjectReferences = z.record(z.string(), zProjectReference);
121
- export const zSpecRef = z.object({
122
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
123
- versionId: z
124
- .string()
125
- .regex(/^[a-z]+_[A-Za-z0-9]+$/)
126
- .optional(),
127
- });
128
- export const zSpecPublicProjectEntry = z.object({
129
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
130
- ref: zSpecRef.optional(),
131
- name: z.string().optional(),
146
+ export const zSpecProjectDef = z.object({
147
+ name: z.string(),
132
148
  description: z.string().optional(),
133
149
  icon: z.string().optional(),
134
150
  instructions: z.string().optional(),
135
151
  references: zProjectReferences.optional(),
136
152
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
137
153
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
138
- channels: z.array(zSpecChannelBinding).optional(),
139
- });
140
- export const zSpecPublicMcpEntry = z.object({
141
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
142
- ref: zSpecRef.optional(),
143
- name: z.string().optional(),
144
- registrySlug: z.string().optional(),
145
- auth: z.enum(["oauth", "basic", "api_key", "none", "mcp_provider"]).optional(),
154
+ permission: zPermissionConfig.optional(),
155
+ defaultModel: zModelSelection.optional(),
156
+ buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
146
157
  });
147
- export const zSpecPublicSkillEntry = z.object({
158
+ export const zSpecProjectEntry = z.object({
148
159
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
149
- ref: zSpecRef.optional(),
150
- name: z.string().optional(),
151
- registrySlug: z.string().optional(),
152
- });
153
- export const zSpecInitialPrompt = z.object({
154
- prompt: z.string(),
155
- project: z
160
+ pod: z
156
161
  .string()
157
162
  .regex(/^[a-z0-9][a-z0-9-]*$/)
158
163
  .optional(),
164
+ def: zSpecProjectDef,
165
+ channels: z.array(zSpecChannelBinding).optional(),
159
166
  });
160
- export const zSpecPod = z.object({
161
- name: z.string().optional(),
167
+ export const zTemplateMemoryMb = z.union([
168
+ z.literal(1024),
169
+ z.literal(2048),
170
+ z.literal(3072),
171
+ z.literal(4096),
172
+ z.literal(5120),
173
+ z.literal(6144),
174
+ z.literal(7168),
175
+ z.literal(8192),
176
+ ]);
177
+ export const zTemplateCpuCount = z.union([z.literal(1), z.literal(2), z.literal(4), z.literal(6), z.literal(8)]);
178
+ export const zPackagesConfig = z.object({
179
+ apt: z.array(z.string()).optional(),
180
+ npm: z.array(z.string()).optional(),
181
+ pip: z.array(z.string()).optional(),
182
+ go: z.array(z.string()).optional(),
183
+ });
184
+ export const zNetworkingConfig = z.union([
185
+ z.object({
186
+ type: z.literal("unrestricted"),
187
+ }),
188
+ z.object({
189
+ type: z.literal("limited"),
190
+ allowMcpServers: z.boolean(),
191
+ allowPackageManagers: z.boolean(),
192
+ allowedHosts: z.array(z.string()),
193
+ }),
194
+ ]);
195
+ export const zSpecEnvironmentDef = z.object({
196
+ networking: zNetworkingConfig,
197
+ packages: zPackagesConfig,
198
+ cpuCount: zTemplateCpuCount.optional(),
199
+ memoryMB: zTemplateMemoryMb.optional(),
200
+ buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional(),
201
+ });
202
+ export const zPresetTemplate = z.enum(["xs", "small", "medium", "large", "xl"]);
203
+ export const zSpecEnvironmentEntry = z.object({
204
+ preset: zPresetTemplate.optional(),
205
+ def: zSpecEnvironmentDef.optional(),
206
+ });
207
+ export const zSpecPodEntry = z.object({
208
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
209
+ name: z.string(),
162
210
  icon: z.string().optional(),
163
211
  description: z.string().optional(),
164
- defaultModel: z.string().optional(),
212
+ instructions: z.string().optional(),
213
+ defaultModel: zModelSelection.optional(),
214
+ environment: zSpecEnvironmentEntry.optional(),
165
215
  });
166
- export const zSpecPublic = z.object({
167
- schemaVersion: z.literal(3),
168
- meta: z.object({
169
- name: z.string(),
170
- description: z.string().optional(),
171
- snapshotDate: z.string().optional(),
172
- }),
173
- pod: zSpecPod.optional(),
216
+ export const zSpecOrg = z.object({
174
217
  instructions: z.string().optional(),
218
+ defaultModel: zModelSelection.optional(),
219
+ });
220
+ export const zSpecMeta = z.object({
221
+ name: z.string(),
222
+ description: z.string().optional(),
223
+ });
224
+ export const zSpec = z.object({
225
+ schemaVersion: z.literal(4),
226
+ meta: zSpecMeta,
227
+ org: zSpecOrg.optional(),
228
+ pods: z.array(zSpecPodEntry),
229
+ projects: z.array(zSpecProjectEntry),
230
+ skills: z.array(zSpecSkillEntry),
231
+ mcps: z.array(zSpecMcpEntry),
232
+ triggers: z.array(zSpecCronTriggerEntry),
233
+ channels: z.array(zSpecChannelBinding).optional(),
175
234
  initialPrompt: zSpecInitialPrompt.optional(),
176
- skills: z.array(zSpecPublicSkillEntry),
177
- mcps: z.array(zSpecPublicMcpEntry),
178
- projects: z.array(zSpecPublicProjectEntry),
179
- triggers: z.array(zSpecPublicTriggerEntry),
180
- environment: z
181
- .object({
182
- preset: zPresetTemplate.optional(),
183
- })
184
- .optional(),
185
235
  });
186
236
  export const zPublisherLink = z.object({
187
237
  label: z.string().min(1),
@@ -198,17 +248,13 @@ export const zPublisherPublicView = z.object({
198
248
  isVerified: z.boolean(),
199
249
  links: z.array(zPublisherLink),
200
250
  });
201
- export const zBlueprintComposition = z.object({
202
- uses: z.array(z.object({
203
- slug: z.string(),
204
- into: z.string().optional(),
205
- })),
251
+ export const zBlueprintCategories = z.object({
252
+ usecases: z.array(z.string()).optional(),
253
+ roles: z.array(z.string()).optional(),
254
+ functions: z.array(z.string()).optional(),
255
+ verticals: z.array(z.string()).optional(),
206
256
  });
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"]);
257
+ export const zBlueprintKind = z.enum(["org", "pod", "project", "app"]);
212
258
  export const zBlueprintPublicView = z.object({
213
259
  id: z.string(),
214
260
  slug: z.string(),
@@ -216,11 +262,10 @@ export const zBlueprintPublicView = z.object({
216
262
  description: z.string().nullable(),
217
263
  websiteMetadata: zWebsiteMetadata.nullable(),
218
264
  kind: zBlueprintKind,
219
- type: zBlueprintType.nullable(),
220
- composition: zBlueprintComposition.nullable(),
265
+ categories: zBlueprintCategories,
221
266
  publisherId: z.string(),
222
267
  publisher: zPublisherPublicView.nullish().default(null),
223
- template: zSpecPublic,
268
+ template: zSpec,
224
269
  replays: z.array(z.string()),
225
270
  examplePrompts: z.array(z.string().min(1).max(200)).max(6),
226
271
  brandColor: z
@@ -233,7 +278,10 @@ export const zBlueprintPublicListItem = z.object({
233
278
  slug: z.string(),
234
279
  name: z.string(),
235
280
  description: z.string().nullable(),
281
+ icon: z.string().nullable(),
236
282
  websiteMetadata: zWebsiteMetadata.nullable(),
283
+ kind: zBlueprintKind,
284
+ categories: zBlueprintCategories,
237
285
  publisherId: z.string().nullable(),
238
286
  publisher: zPublisherPublicView.nullish().default(null),
239
287
  updatedAt: z.iso
@@ -341,7 +389,7 @@ export const zAgentLatestVersion = z.object({
341
389
  version: z.string().regex(/^\d+\.\d+\.\d+$/),
342
390
  description: z.string().nullable(),
343
391
  prompt: z.string().nullable(),
344
- model: z.string().nullable(),
392
+ model: zModelSelection.nullable(),
345
393
  skills: z.array(z.object({
346
394
  skillId: z.string(),
347
395
  skillVersionId: z.string().nullish().default(null),
@@ -822,7 +870,7 @@ export const zCronTriggerDetail = z.object({
822
870
  projectAgentId: z.string().nullable(),
823
871
  senderUserId: z.string(),
824
872
  inputMessage: z.string(),
825
- model: z.string().nullable(),
873
+ model: zModelSelection.nullable(),
826
874
  schedule: z.string(),
827
875
  timezone: z.string().nullable(),
828
876
  until: z.iso
@@ -863,7 +911,7 @@ export const zCronTrigger = z.object({
863
911
  projectAgentId: z.string().nullable(),
864
912
  senderUserId: z.string(),
865
913
  inputMessage: z.string(),
866
- model: z.string().nullable(),
914
+ model: zModelSelection.nullable(),
867
915
  schedule: z.string(),
868
916
  timezone: z.string().nullable(),
869
917
  until: z.iso
@@ -910,7 +958,7 @@ export const zTopology = z.object({
910
958
  id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
911
959
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
912
960
  name: z.string(),
913
- model: z.string().optional(),
961
+ model: zModelSelection.optional(),
914
962
  icon: z.string().optional(),
915
963
  skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
916
964
  mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
@@ -1006,7 +1054,7 @@ export const zTopology = z.object({
1006
1054
  project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1007
1055
  schedule: z.string(),
1008
1056
  inputMessage: z.string(),
1009
- model: z.string().optional(),
1057
+ model: zModelSelection.optional(),
1010
1058
  }))
1011
1059
  .optional(),
1012
1060
  emails: z
@@ -1414,7 +1462,7 @@ export const zProject = z.object({
1414
1462
  icon: z.string().nullable(),
1415
1463
  description: z.string().nullable(),
1416
1464
  slug: z.string(),
1417
- defaultModel: z.string().nullable(),
1465
+ defaultModel: zModelSelection.nullable(),
1418
1466
  instructions: z.string(),
1419
1467
  permission: zPermissionConfig,
1420
1468
  gitRepos: z.array(zProjectGitRepo),
@@ -1710,7 +1758,7 @@ export const zPod = z.object({
1710
1758
  description: z.string().nullable(),
1711
1759
  isPrivate: z.boolean(),
1712
1760
  isDefault: z.boolean(),
1713
- defaultModel: z.string().nullable(),
1761
+ defaultModel: zModelSelection.nullable(),
1714
1762
  instructions: z.string(),
1715
1763
  environmentId: z.string().nullable(),
1716
1764
  presetTemplate: zPresetTemplate,
@@ -1768,7 +1816,7 @@ export const zOrgSettings = z.object({
1768
1816
  id: z.string(),
1769
1817
  name: z.string(),
1770
1818
  slug: z.string(),
1771
- defaultModel: z.string().nullable(),
1819
+ defaultModel: zModelSelection.nullable(),
1772
1820
  instructions: z.string(),
1773
1821
  });
1774
1822
  export const zOnboardingSetupPersonalOrg = z.object({
@@ -1779,6 +1827,7 @@ export const zOnboardingStart = z.object({
1779
1827
  podId: z.string(),
1780
1828
  projectId: z.string(),
1781
1829
  sessionId: z.string(),
1830
+ initialPrompt: z.string(),
1782
1831
  });
1783
1832
  export const zModelPricing = z.object({
1784
1833
  input_usd_per_million_tokens: z.number(),
@@ -1791,6 +1840,10 @@ export const zModelEntry = z.object({
1791
1840
  modelID: z.string(),
1792
1841
  size: z.enum(["large", "medium", "small"]).optional(),
1793
1842
  pricing: zModelPricing.optional(),
1843
+ variants: z.array(z.object({
1844
+ id: z.string(),
1845
+ name: z.string(),
1846
+ })),
1794
1847
  });
1795
1848
  export const zModelProvider = z.object({
1796
1849
  key: z.string(),
@@ -1798,7 +1851,7 @@ export const zModelProvider = z.object({
1798
1851
  models: z.array(zModelEntry),
1799
1852
  });
1800
1853
  export const zModelsResponse = z.object({
1801
- default_model: z.string(),
1854
+ default_model: zModelSelection,
1802
1855
  providers: z.array(zModelProvider),
1803
1856
  });
1804
1857
  export const zMemoryStoreFile = z.object({
@@ -1985,6 +2038,90 @@ export const zOAuthApp = z.object({
1985
2038
  .nullable(),
1986
2039
  hasClientSecret: z.boolean(),
1987
2040
  });
2041
+ export const zInferenceKeyCreateInput = z.object({
2042
+ name: z.string().min(1).max(64),
2043
+ });
2044
+ export const zInferenceKeyCreated = z.object({
2045
+ id: z.string(),
2046
+ name: z.string(),
2047
+ prefix: z.string(),
2048
+ status: z.enum(["active", "revoke_pending", "revoked"]),
2049
+ owner: z
2050
+ .object({
2051
+ id: z.string(),
2052
+ name: z.string(),
2053
+ })
2054
+ .nullable(),
2055
+ orphaned: z.boolean(),
2056
+ lastUsedAt: z.string().nullable(),
2057
+ createdAt: z.string(),
2058
+ secret: z.string(),
2059
+ });
2060
+ export const zInferenceKey = z.object({
2061
+ id: z.string(),
2062
+ name: z.string(),
2063
+ prefix: z.string(),
2064
+ status: z.enum(["active", "revoke_pending", "revoked"]),
2065
+ owner: z
2066
+ .object({
2067
+ id: z.string(),
2068
+ name: z.string(),
2069
+ })
2070
+ .nullable(),
2071
+ orphaned: z.boolean(),
2072
+ lastUsedAt: z.string().nullable(),
2073
+ createdAt: z.string(),
2074
+ });
2075
+ export const zInferenceSubscriptionRenameInput = z.object({
2076
+ label: z.string().min(1).max(64),
2077
+ });
2078
+ export const zInferenceSubscriptionConnectInput = z.object({
2079
+ label: z.string().min(1).max(64).optional(),
2080
+ profile: z.object({
2081
+ token: z
2082
+ .string()
2083
+ .max(4096)
2084
+ .regex(/^sk-ant-oat.*/),
2085
+ deviceId: z.string().min(1).max(512),
2086
+ accountUuid: z.string().min(1).max(128),
2087
+ organizationUuid: z.string().max(128).nullish().default(null),
2088
+ subscriptionType: z.string().max(128).nullish().default(null),
2089
+ rateLimitTier: z.string().max(128).nullish().default(null),
2090
+ clientHeaders: z.record(z.string(), z.string().max(512)).optional().default({}),
2091
+ }),
2092
+ });
2093
+ export const zInferenceProviderUsage = z.object({
2094
+ windows: z.array(z.object({
2095
+ key: z.string(),
2096
+ utilization: z.number().gte(0).nullable(),
2097
+ status: z.string().nullable(),
2098
+ resetsAt: z.string().nullable(),
2099
+ })),
2100
+ status: z.string().nullable(),
2101
+ representativeWindow: z.string().nullable(),
2102
+ overageStatus: z.string().nullable(),
2103
+ overageDisabledReason: z.string().nullable(),
2104
+ observedAt: z.string(),
2105
+ });
2106
+ export const zInferenceProvider = z.enum(["anthropic"]);
2107
+ export const zInferenceSubscriptionSeat = z.object({
2108
+ id: z.string(),
2109
+ provider: zInferenceProvider,
2110
+ label: z.string(),
2111
+ health: z.enum(["connected", "exhausted", "needs_reauth", "transient"]),
2112
+ cooldownUntil: z.string().nullable(),
2113
+ subscriptionType: z.string().nullable(),
2114
+ rateLimitTier: z.string().nullable(),
2115
+ contributor: z
2116
+ .object({
2117
+ id: z.string(),
2118
+ name: z.string(),
2119
+ })
2120
+ .nullable(),
2121
+ usage: zInferenceProviderUsage.nullable(),
2122
+ lastSelectedAt: z.string().nullable(),
2123
+ connectedAt: z.string(),
2124
+ });
1988
2125
  export const zGoogleWorkspaceOAuthStartResult = z.object({
1989
2126
  url: z.url(),
1990
2127
  });
@@ -2097,17 +2234,6 @@ export const zFileStore = z.object({
2097
2234
  .nullable(),
2098
2235
  mountPath: z.string(),
2099
2236
  });
2100
- export const zTemplateMemoryMb = z.union([
2101
- z.literal(1024),
2102
- z.literal(2048),
2103
- z.literal(3072),
2104
- z.literal(4096),
2105
- z.literal(5120),
2106
- z.literal(6144),
2107
- z.literal(7168),
2108
- z.literal(8192),
2109
- ]);
2110
- export const zTemplateCpuCount = z.union([z.literal(1), z.literal(2), z.literal(4), z.literal(6), z.literal(8)]);
2111
2237
  export const zEnvironmentBuildStatus = z.enum(["queued", "building", "ready", "error"]);
2112
2238
  export const zEnvironmentBuild = z.object({
2113
2239
  id: z.string(),
@@ -2128,23 +2254,6 @@ export const zEnvironmentBuild = z.object({
2128
2254
  .datetime()
2129
2255
  .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))$/),
2130
2256
  });
2131
- export const zPackagesConfig = z.object({
2132
- apt: z.array(z.string()).optional(),
2133
- npm: z.array(z.string()).optional(),
2134
- pip: z.array(z.string()).optional(),
2135
- go: z.array(z.string()).optional(),
2136
- });
2137
- export const zNetworkingConfig = z.union([
2138
- z.object({
2139
- type: z.literal("unrestricted"),
2140
- }),
2141
- z.object({
2142
- type: z.literal("limited"),
2143
- allowMcpServers: z.boolean(),
2144
- allowPackageManagers: z.boolean(),
2145
- allowedHosts: z.array(z.string()),
2146
- }),
2147
- ]);
2148
2257
  export const zEnvironment = z.object({
2149
2258
  id: z.string(),
2150
2259
  name: z.string(),
@@ -2234,6 +2343,14 @@ export const zUsageDailyPoint = z.object({
2234
2343
  credits: z.string(),
2235
2344
  eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
2236
2345
  });
2346
+ export const zUsageServedByItem = z.object({
2347
+ servedBy: z.enum(["customer_sub", "ren_sub", "paid_api", "unattributed"]),
2348
+ credits: z.string(),
2349
+ amountCents: z.int().gte(-9007199254740991).lte(9007199254740991),
2350
+ eventCount: z.int().gte(-9007199254740991).lte(9007199254740991),
2351
+ promptTokens: z.string(),
2352
+ completionTokens: z.string(),
2353
+ });
2237
2354
  export const zUsageBreakdownItem = z.object({
2238
2355
  source: z.string(),
2239
2356
  operation: z.string(),
@@ -2247,11 +2364,12 @@ export const zUsage = z.object({
2247
2364
  from: z.string().nullable(),
2248
2365
  through: z.string(),
2249
2366
  breakdown: z.array(zUsageBreakdownItem),
2367
+ servedBy: z.array(zUsageServedByItem),
2250
2368
  daily: z.array(zUsageDailyPoint),
2251
- groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).nullable(),
2369
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source", "servedBy"]).nullable(),
2252
2370
  groups: z.array(zUsageGroup),
2253
2371
  });
2254
- export const zBlueprintInstallProjectTarget = z.union([
2372
+ export const zBlueprintAddProjectTarget = z.union([
2255
2373
  z.object({
2256
2374
  blueprintProjectSlug: z.string().min(1),
2257
2375
  mode: z.literal("create"),
@@ -2263,31 +2381,56 @@ export const zBlueprintInstallProjectTarget = z.union([
2263
2381
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2264
2382
  }),
2265
2383
  ]);
2266
- export const zBlueprintInstallInput = z.object({
2384
+ export const zBlueprintAddPodTarget = z.union([
2385
+ z.object({
2386
+ blueprintPodSlug: z.string().min(1),
2387
+ mode: z.literal("create"),
2388
+ name: z.string().min(1).max(256).optional(),
2389
+ }),
2390
+ z.object({
2391
+ blueprintPodSlug: z.string().min(1),
2392
+ mode: z.literal("existing"),
2393
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2394
+ }),
2395
+ ]);
2396
+ export const zBlueprintAddInput = z.object({
2267
2397
  source: z.string().min(1),
2268
- podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2269
- projectTargets: z.array(zBlueprintInstallProjectTarget).optional(),
2398
+ podId: z
2399
+ .string()
2400
+ .regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/)
2401
+ .optional(),
2402
+ targetProjectId: z
2403
+ .string()
2404
+ .regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/)
2405
+ .optional(),
2406
+ podTargets: z.array(zBlueprintAddPodTarget).optional(),
2407
+ projectTargets: z.array(zBlueprintAddProjectTarget).optional(),
2270
2408
  });
2271
- export const zBlueprintInstallProjectMapping = z.object({
2409
+ export const zBlueprintAddProjectMapping = z.object({
2272
2410
  blueprintProjectSlug: z.string(),
2273
2411
  projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2274
2412
  });
2275
- export const zBlueprintInstallRequirement = z.object({
2276
- kind: z.enum(["credential", "channel", "capability", "other"]),
2413
+ export const zBlueprintAddPodMapping = z.object({
2414
+ blueprintPodSlug: z.string(),
2415
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2416
+ });
2417
+ export const zBlueprintAddRequirement = z.object({
2418
+ kind: z.enum(["credential", "channel"]),
2277
2419
  message: z.string(),
2278
2420
  project: z.string().optional(),
2279
2421
  credential: z.string().optional(),
2280
2422
  });
2281
- export const zBlueprintInstallReport = z.object({
2423
+ export const zBlueprintAddReport = z.object({
2282
2424
  skills: z.array(z.string()),
2283
2425
  mcps: z.array(z.string()),
2284
2426
  skipped: z.array(z.object({
2285
- kind: z.enum(["skill", "mcp", "project", "trigger", "environment", "gitRepo"]),
2427
+ kind: z.enum(["skill", "mcp", "trigger", "environment"]),
2286
2428
  sourceId: z.string(),
2287
2429
  reason: z.string(),
2288
2430
  })),
2289
- requirements: z.array(zBlueprintInstallRequirement),
2290
- projectMappings: z.array(zBlueprintInstallProjectMapping),
2431
+ requirements: z.array(zBlueprintAddRequirement),
2432
+ podMappings: z.array(zBlueprintAddPodMapping),
2433
+ projectMappings: z.array(zBlueprintAddProjectMapping),
2291
2434
  initialPrompt: z
2292
2435
  .object({
2293
2436
  prompt: z.string(),
@@ -2298,154 +2441,16 @@ export const zBlueprintInstallReport = z.object({
2298
2441
  })
2299
2442
  .optional(),
2300
2443
  });
2301
- export const zBlueprintSelection = z.object({
2302
- projectIds: z.array(z.string()).optional().default([]),
2303
- skillIds: z.array(z.string()).optional().default([]),
2304
- mcpIds: z.array(z.string()).optional().default([]),
2305
- replayIds: z.array(z.string()).optional().default([]),
2306
- cronTriggerIds: z.array(z.string()).optional().default([]),
2307
- });
2308
- export const zSpecEnvironmentDef = z.object({
2309
- networking: zNetworkingConfig,
2310
- packages: zPackagesConfig,
2311
- cpuCount: zTemplateCpuCount.optional(),
2312
- memoryMB: zTemplateMemoryMb.optional(),
2313
- buildCommands: z.array(z.string().min(1).max(4096)).max(50).optional(),
2314
- });
2315
- export const zSpecRequirement = z.object({
2316
- id: z.string(),
2317
- kind: z.enum(["credential_present", "capability", "other"]),
2318
- must: z.string(),
2319
- agent: z
2320
- .string()
2321
- .regex(/^[a-z0-9][a-z0-9-]*$/)
2322
- .optional(),
2323
- mcp: z
2324
- .string()
2325
- .regex(/^[a-z0-9][a-z0-9-]*$/)
2326
- .optional(),
2327
- skill: z
2328
- .string()
2329
- .regex(/^[a-z0-9][a-z0-9-]*$/)
2330
- .optional(),
2331
- verify: z.string().optional(),
2332
- });
2333
- export const zSpecEnvironmentEntry = z.object({
2334
- preset: zPresetTemplate.optional(),
2335
- def: zSpecEnvironmentDef.optional(),
2336
- requirements: z.array(zSpecRequirement).optional(),
2337
- notes: z.string().optional(),
2338
- });
2339
- export const zSpecCronTriggerEntry = z.object({
2340
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2341
- ref: z
2342
- .object({
2343
- id: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
2344
- })
2345
- .optional(),
2346
- project: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2347
- schedule: z.string(),
2348
- timezone: z.string().optional(),
2349
- until: z.iso
2350
- .datetime()
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))$/)
2352
- .optional(),
2353
- inputMessage: z.string(),
2354
- model: z.string().optional(),
2355
- enabled: z.boolean().optional(),
2356
- requirements: z.array(zSpecRequirement).optional(),
2357
- notes: z.string().optional(),
2358
- });
2359
- export const zSpecProjectDef = z.object({
2360
- name: z.string(),
2361
- description: z.string().optional(),
2362
- icon: z.string().optional(),
2363
- instructions: z.string().optional(),
2364
- references: zProjectReferences.optional(),
2365
- skills: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2366
- mcps: z.array(z.string().regex(/^[a-z0-9][a-z0-9-]*$/)).optional(),
2367
- permission: zPermissionConfig.optional(),
2368
- defaultModel: z.string().optional(),
2369
- gitRepos: z.array(zProjectGitRepo).optional(),
2370
- buildOrder: z.int().gte(1).lte(9007199254740991).optional(),
2371
- });
2372
- export const zSpecProjectEntry = z.object({
2373
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2374
- ref: zSpecRef.optional(),
2375
- def: zSpecProjectDef.optional(),
2376
- channels: z.array(zSpecChannelBinding).optional(),
2377
- requirements: z.array(zSpecRequirement).optional(),
2378
- notes: z.string().optional(),
2379
- });
2380
- export const zSpecMcpDef = z.object({
2381
- name: z.string(),
2382
- registrySlug: z.string().optional(),
2383
- type: z.enum(["local", "remote"]).optional(),
2384
- remoteUrl: z.url().optional(),
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(),
2393
- });
2394
- export const zSpecMcpEntry = z.object({
2395
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2396
- ref: zSpecRef.optional(),
2397
- def: zSpecMcpDef.optional(),
2398
- requirements: z.array(zSpecRequirement).optional(),
2399
- notes: z.string().optional(),
2400
- });
2401
- export const zSpecSkillDef = z.object({
2402
- name: z.string(),
2403
- registrySlug: z.string().optional(),
2404
- purpose: z.string(),
2405
- });
2406
- export const zSpecSkillEntry = z.object({
2407
- slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
2408
- ref: zSpecRef.optional(),
2409
- def: zSpecSkillDef.optional(),
2410
- requirements: z.array(zSpecRequirement).optional(),
2411
- notes: z.string().optional(),
2412
- });
2413
- export const zSpecBrief = z.object({
2414
- goal: z.string(),
2415
- scope: z.string().optional(),
2416
- actors: z.array(z.string()).optional(),
2417
- successCriteria: z.array(z.string()).optional(),
2418
- constraints: z.array(z.string()).optional(),
2419
- openQuestions: z.array(z.string()).optional(),
2420
- });
2421
- export const zSpecMeta = z.object({
2422
- name: z.string(),
2423
- description: z.string().optional(),
2424
- snapshotDate: z.string().optional(),
2425
- notes: z.string().optional(),
2426
- });
2427
- export const zSpec = z.object({
2428
- schemaVersion: z.literal(3),
2429
- meta: zSpecMeta,
2430
- brief: zSpecBrief.optional(),
2431
- pod: zSpecPod.optional(),
2432
- instructions: z.string().optional(),
2433
- initialPrompt: zSpecInitialPrompt.optional(),
2434
- skills: z.array(zSpecSkillEntry),
2435
- mcps: z.array(zSpecMcpEntry),
2436
- projects: z.array(zSpecProjectEntry),
2437
- triggers: z.array(zSpecCronTriggerEntry),
2438
- environment: zSpecEnvironmentEntry.optional(),
2439
- });
2440
2444
  export const zBlueprint = z.object({
2441
2445
  id: z.string(),
2442
2446
  slug: z.string(),
2443
2447
  kind: zBlueprintKind,
2444
- type: zBlueprintType.nullable(),
2448
+ categories: zBlueprintCategories,
2445
2449
  brandColor: z
2446
2450
  .string()
2447
2451
  .regex(/^#[0-9a-f]{6}$/)
2448
2452
  .nullable(),
2453
+ icon: z.string().nullable(),
2449
2454
  name: z.string(),
2450
2455
  description: z.string().nullable(),
2451
2456
  orgId: z.string(),
@@ -2454,7 +2459,6 @@ export const zBlueprint = z.object({
2454
2459
  template: zSpec,
2455
2460
  replays: z.array(z.string()),
2456
2461
  examplePrompts: z.array(z.string().min(1).max(200)).max(6),
2457
- composition: zBlueprintComposition.nullable(),
2458
2462
  websiteMetadata: zWebsiteMetadata.nullable(),
2459
2463
  createdAt: z.iso
2460
2464
  .datetime()
@@ -2487,7 +2491,7 @@ export const zAgentVersionArchiveResult = z.object({
2487
2491
  .nullable(),
2488
2492
  description: z.string().nullable(),
2489
2493
  prompt: z.string().nullable(),
2490
- model: z.string().nullable(),
2494
+ model: zModelSelection.nullable(),
2491
2495
  releaseNotes: z.string().nullable(),
2492
2496
  permission: zPermissionConfig,
2493
2497
  skills: z
@@ -2532,7 +2536,7 @@ export const zAgentVersion = z.object({
2532
2536
  .nullable(),
2533
2537
  description: z.string().nullable(),
2534
2538
  prompt: z.string().nullable(),
2535
- model: z.string().nullable(),
2539
+ model: zModelSelection.nullable(),
2536
2540
  releaseNotes: z.string().nullable(),
2537
2541
  permission: zPermissionConfig,
2538
2542
  skills: z
@@ -2648,7 +2652,7 @@ export const zAgentCreateBody = z.object({
2648
2652
  .default("patch"),
2649
2653
  description: z.string().optional(),
2650
2654
  prompt: z.string().optional(),
2651
- model: z.string().nullish(),
2655
+ model: zModelSelection.nullish(),
2652
2656
  permission: zPermissionConfig.optional(),
2653
2657
  skills: z
2654
2658
  .array(z.object({
@@ -2751,7 +2755,7 @@ export const zAgentVersionCreateBody = z.object({
2751
2755
  .default("patch"),
2752
2756
  description: z.string().optional(),
2753
2757
  prompt: z.string().optional(),
2754
- model: z.string().nullish(),
2758
+ model: zModelSelection.nullish(),
2755
2759
  permission: zPermissionConfig.optional(),
2756
2760
  skills: z
2757
2761
  .array(z.object({
@@ -2800,12 +2804,21 @@ export const zBlueprintListQuery = z.object({
2800
2804
  */
2801
2805
  export const zBlueprintListResponse = z.array(zBlueprint);
2802
2806
  export const zBlueprintCreateBody = z.object({
2807
+ slug: z.string().optional(),
2808
+ kind: zBlueprintKind,
2809
+ categories: zBlueprintCategories.optional(),
2803
2810
  name: z.string().min(1).max(256),
2804
2811
  description: z.string().optional().default(""),
2812
+ brandColor: z
2813
+ .string()
2814
+ .regex(/^#[0-9a-f]{6}$/)
2815
+ .nullish()
2816
+ .default(null),
2817
+ icon: z.string().nullish().default(null),
2818
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6).optional().default([]),
2805
2819
  websiteMetadata: zWebsiteMetadata.nullish().default(null),
2806
- instructions: z.string().optional(),
2807
- initialPrompt: zSpecInitialPrompt.optional(),
2808
- selection: zBlueprintSelection,
2820
+ replays: z.array(z.string()).optional().default([]),
2821
+ spec: zSpec,
2809
2822
  visibility: z.enum(["private", "org"]).optional().default("org"),
2810
2823
  });
2811
2824
  /**
@@ -2817,14 +2830,14 @@ export const zBlueprintPushBody = z.object({
2817
2830
  slug: z.string().optional(),
2818
2831
  name: z.string().min(1).max(256).optional(),
2819
2832
  description: z.string().optional(),
2820
- kind: zBlueprintKind.optional(),
2821
- type: zBlueprintType.nullish(),
2833
+ kind: zBlueprintKind,
2834
+ categories: zBlueprintCategories.optional(),
2822
2835
  examplePrompts: z.array(z.string().min(1).max(200)).max(6).optional(),
2823
2836
  brandColor: z
2824
2837
  .string()
2825
2838
  .regex(/^#[0-9a-f]{6}$/)
2826
2839
  .nullish(),
2827
- composition: zBlueprintComposition.nullish(),
2840
+ icon: z.string().nullish(),
2828
2841
  websiteMetadata: zWebsiteMetadata.nullish(),
2829
2842
  spec: zSpec,
2830
2843
  });
@@ -2832,11 +2845,11 @@ export const zBlueprintPushBody = z.object({
2832
2845
  * Upserted blueprint
2833
2846
  */
2834
2847
  export const zBlueprintPushResponse = zBlueprint;
2835
- export const zBlueprintInstallBody = zBlueprintInstallInput;
2848
+ export const zBlueprintAddBody = zBlueprintAddInput;
2836
2849
  /**
2837
- * Install report
2850
+ * Add report
2838
2851
  */
2839
- export const zBlueprintInstallResponse = zBlueprintInstallReport;
2852
+ export const zBlueprintAddResponse = zBlueprintAddReport;
2840
2853
  export const zBlueprintGetPath = z.object({
2841
2854
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
2842
2855
  });
@@ -2845,12 +2858,19 @@ export const zBlueprintGetPath = z.object({
2845
2858
  */
2846
2859
  export const zBlueprintGetResponse = zBlueprint;
2847
2860
  export const zBlueprintUpdateBody = z.object({
2861
+ kind: zBlueprintKind.optional(),
2862
+ categories: zBlueprintCategories.optional(),
2848
2863
  name: z.string().min(1).max(256).optional(),
2849
2864
  description: z.string().optional(),
2865
+ brandColor: z
2866
+ .string()
2867
+ .regex(/^#[0-9a-f]{6}$/)
2868
+ .nullish(),
2869
+ icon: z.string().nullish(),
2870
+ examplePrompts: z.array(z.string().min(1).max(200)).max(6).optional(),
2850
2871
  websiteMetadata: zWebsiteMetadata.nullish(),
2851
- instructions: z.string().optional(),
2852
- initialPrompt: zSpecInitialPrompt.nullish(),
2853
- selection: zBlueprintSelection.optional(),
2872
+ replays: z.array(z.string()).optional(),
2873
+ spec: zSpec.optional(),
2854
2874
  });
2855
2875
  export const zBlueprintUpdatePath = z.object({
2856
2876
  id: z.string().regex(/^blp_[0-9A-HJKMNP-TV-Z]{26}$/),
@@ -2946,7 +2966,7 @@ export const zBillingGetResponse = z.object({
2946
2966
  });
2947
2967
  export const zBillingUsageQuery = z.object({
2948
2968
  groupBy: z
2949
- .enum(["user", "member", "agent", "model", "session", "project", "pod", "source"])
2969
+ .enum(["user", "member", "agent", "model", "session", "project", "pod", "source", "servedBy"])
2950
2970
  .optional()
2951
2971
  .default("source"),
2952
2972
  start: z.iso
@@ -3412,6 +3432,46 @@ export const zGoogleConnectQuery = z.object({
3412
3432
  * Authorization URL for the user to visit
3413
3433
  */
3414
3434
  export const zGoogleConnectResponse = zGoogleWorkspaceOAuthStartResult;
3435
+ /**
3436
+ * Seat health and provider usage
3437
+ */
3438
+ export const zInferenceSubscriptionsListResponse = z.array(zInferenceSubscriptionSeat);
3439
+ export const zInferenceSubscriptionsConnectAnthropicBody = zInferenceSubscriptionConnectInput;
3440
+ /**
3441
+ * The connected seat
3442
+ */
3443
+ export const zInferenceSubscriptionsConnectAnthropicResponse = zInferenceSubscriptionSeat;
3444
+ export const zInferenceSubscriptionsRemovePath = z.object({
3445
+ id: z.string(),
3446
+ });
3447
+ /**
3448
+ * Removed
3449
+ */
3450
+ export const zInferenceSubscriptionsRemoveResponse = z.void();
3451
+ export const zInferenceSubscriptionsRenameBody = zInferenceSubscriptionRenameInput;
3452
+ export const zInferenceSubscriptionsRenamePath = z.object({
3453
+ id: z.string(),
3454
+ });
3455
+ /**
3456
+ * The renamed seat
3457
+ */
3458
+ export const zInferenceSubscriptionsRenameResponse = zInferenceSubscriptionSeat;
3459
+ /**
3460
+ * The caller's keys, or every key in the organization for admins
3461
+ */
3462
+ export const zInferenceKeysListResponse = z.array(zInferenceKey);
3463
+ export const zInferenceKeysCreateBody = zInferenceKeyCreateInput;
3464
+ /**
3465
+ * The new key; the secret is shown exactly once
3466
+ */
3467
+ export const zInferenceKeysCreateResponse = zInferenceKeyCreated;
3468
+ export const zInferenceKeysRevokePath = z.object({
3469
+ id: z.string(),
3470
+ });
3471
+ /**
3472
+ * Revoked
3473
+ */
3474
+ export const zInferenceKeysRevokeResponse = z.void();
3415
3475
  /**
3416
3476
  * OAuth apps
3417
3477
  */
@@ -3736,9 +3796,11 @@ export const zOnboardingStartBody = z.object({
3736
3796
  prompt: z.string().min(1).max(8000),
3737
3797
  skillIds: z.array(z.string()).max(64).optional().default([]),
3738
3798
  mcpIds: z.array(z.string()).max(64).optional().default([]),
3799
+ persona: z.string().max(64).nullish(),
3800
+ channels: z.array(z.string().max(32)).max(16).optional().default([]),
3739
3801
  });
3740
3802
  /**
3741
- * Session created and prompt sent
3803
+ * Session created and initial prompt prepared
3742
3804
  */
3743
3805
  export const zOnboardingStartResponse = zOnboardingStart;
3744
3806
  /**
@@ -3750,7 +3812,7 @@ export const zOnboardingSetupPersonalOrgResponse = zOnboardingSetupPersonalOrg;
3750
3812
  */
3751
3813
  export const zOrgGetResponse = zOrgSettings;
3752
3814
  export const zOrgUpdateBody = z.object({
3753
- defaultModel: z.string().nullish(),
3815
+ defaultModel: zModelSelection.nullish(),
3754
3816
  instructions: z.string().optional(),
3755
3817
  });
3756
3818
  /**
@@ -3832,7 +3894,7 @@ export const zPodUpdateBody = z.object({
3832
3894
  description: z.string().optional(),
3833
3895
  isPrivate: z.boolean().optional(),
3834
3896
  environmentId: z.string().nullish(),
3835
- defaultModel: z.string().nullish(),
3897
+ defaultModel: zModelSelection.nullish(),
3836
3898
  instructions: z.string().optional(),
3837
3899
  presetTemplate: zPresetTemplate.optional(),
3838
3900
  });
@@ -3847,7 +3909,7 @@ export const zPodUsagePath = z.object({
3847
3909
  id: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
3848
3910
  });
3849
3911
  export const zPodUsageQuery = z.object({
3850
- groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).optional(),
3912
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source", "servedBy"]).optional(),
3851
3913
  start: z.iso
3852
3914
  .datetime()
3853
3915
  .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))$/)
@@ -4086,7 +4148,7 @@ export const zProjectUpdateBody = z.object({
4086
4148
  permission: zPermissionConfig.optional(),
4087
4149
  gitRepos: z.array(zProjectGitRepo).optional(),
4088
4150
  references: zProjectReferences.optional(),
4089
- defaultModel: z.string().nullish(),
4151
+ defaultModel: zModelSelection.nullish(),
4090
4152
  instructions: z.string().optional(),
4091
4153
  });
4092
4154
  export const zProjectUpdatePath = z.object({
@@ -4100,7 +4162,7 @@ export const zProjectUsagePath = z.object({
4100
4162
  id: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
4101
4163
  });
4102
4164
  export const zProjectUsageQuery = z.object({
4103
- groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source"]).optional(),
4165
+ groupBy: z.enum(["user", "member", "agent", "model", "session", "project", "pod", "source", "servedBy"]).optional(),
4104
4166
  start: z.iso
4105
4167
  .datetime()
4106
4168
  .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))$/)
@@ -4789,7 +4851,7 @@ export const zCronTriggerListResponse = z.array(zCronTrigger);
4789
4851
  export const zCronTriggerCreateBody = z.object({
4790
4852
  projectAgentId: z.string().nullish().default(null),
4791
4853
  inputMessage: z.string(),
4792
- model: z.string().nullish().default(null),
4854
+ model: zModelSelection.nullish().default(null),
4793
4855
  schedule: z.string(),
4794
4856
  timezone: z.string().optional().default("UTC"),
4795
4857
  until: z.iso
@@ -4817,7 +4879,7 @@ export const zCronTriggerGetResponse = zCronTriggerDetail;
4817
4879
  export const zCronTriggerUpdateBody = z.object({
4818
4880
  projectAgentId: z.string().nullish(),
4819
4881
  inputMessage: z.string().optional(),
4820
- model: z.string().nullish(),
4882
+ model: zModelSelection.nullish(),
4821
4883
  schedule: z.string().optional(),
4822
4884
  timezone: z.string().optional(),
4823
4885
  until: z.iso
@@ -5212,6 +5274,11 @@ export const zRegistryBlueprintListQuery = z.object({
5212
5274
  limit: z.int().gte(1).lte(1000).optional(),
5213
5275
  offset: z.int().gte(0).lte(9007199254740991).optional(),
5214
5276
  includeDeprecated: z.boolean().optional(),
5277
+ kind: zBlueprintKind.optional(),
5278
+ usecase: z.string().min(1).optional(),
5279
+ role: z.string().min(1).optional(),
5280
+ function: z.string().min(1).optional(),
5281
+ vertical: z.string().min(1).optional(),
5215
5282
  });
5216
5283
  /**
5217
5284
  * Published blueprint list