@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,6 +1,9 @@
1
1
  export type ClientOptions = {
2
2
  baseUrl: `${string}://${string}` | (string & {});
3
3
  };
4
+ /**
5
+ * 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"}}
6
+ */
4
7
  export type PermissionConfig = {
5
8
  __originalKeys?: Array<string>;
6
9
  read?: "allow" | "deny" | "ask" | {
@@ -103,12 +106,20 @@ export type BlueprintPublicView = {
103
106
  name: string;
104
107
  description: string | null;
105
108
  websiteMetadata: WebsiteMetadata | null;
106
- pageContent: BlueprintPageContent | null;
109
+ kind: BlueprintKind;
110
+ type: BlueprintType | null;
111
+ composition: BlueprintComposition | null;
107
112
  publisherId: string;
108
113
  publisher?: PublisherPublicView | null;
109
114
  template: SpecPublic;
110
115
  replays: Array<string>;
116
+ /**
117
+ * Starter prompts the composer offers. Suggestions — unlike `initialPrompt`, nothing sends them.
118
+ */
119
+ examplePrompts: Array<string>;
120
+ brandColor: string | null;
111
121
  };
122
+ export type PresetTemplate = "xs" | "small" | "medium" | "large" | "xl";
112
123
  export type SpecPublicTriggerEntry = {
113
124
  /**
114
125
  * Kebab-case key. The only way entries reference each other; survives the planned→built transition.
@@ -124,10 +135,6 @@ export type SpecPublicTriggerEntry = {
124
135
  * Slug of the project this cron belongs to.
125
136
  */
126
137
  project: string;
127
- /**
128
- * Project-agent slug this cron fires; default = the meta agent.
129
- */
130
- agent?: string;
131
138
  schedule: string;
132
139
  timezone?: string;
133
140
  /**
@@ -135,6 +142,10 @@ export type SpecPublicTriggerEntry = {
135
142
  */
136
143
  until?: string;
137
144
  inputMessage: string;
145
+ /**
146
+ * Ren model id the fires run on, e.g. opus-5, sonnet-5.
147
+ */
148
+ model?: string;
138
149
  enabled?: boolean;
139
150
  };
140
151
  export type SpecChannelBinding = {
@@ -147,20 +158,6 @@ export type SpecChannelBinding = {
147
158
  * Portable intent — 'bug-report intake', 'PR review repo'.
148
159
  */
149
160
  purpose: string;
150
- /**
151
- * Project-agent slug this binding fires / posts as; default = the meta agent.
152
- */
153
- agent?: string;
154
- };
155
- export type SpecProjectAgent = {
156
- /**
157
- * Spec agent slug attached to this project.
158
- */
159
- slug: string;
160
- /**
161
- * Opencode agent mode this membership runs as.
162
- */
163
- mode?: "subagent" | "all";
164
161
  };
165
162
  export type ProjectReference = string | {
166
163
  repository: string;
@@ -183,9 +180,9 @@ export type SpecPublicProjectEntry = {
183
180
  ref?: SpecRef;
184
181
  name?: string;
185
182
  description?: string;
183
+ icon?: string;
186
184
  instructions?: string;
187
185
  references?: ProjectReferences;
188
- agents?: Array<SpecProjectAgent>;
189
186
  skills?: Array<string>;
190
187
  mcps?: Array<string>;
191
188
  channels?: Array<SpecChannelBinding>;
@@ -219,31 +216,24 @@ export type SpecPublicSkillEntry = {
219
216
  name?: string;
220
217
  registrySlug?: string;
221
218
  };
222
- export type SpecPublicAgentEntry = {
223
- /**
224
- * Kebab-case key. The only way entries reference each other; survives the planned→built transition.
225
- */
226
- slug: string;
227
- ref?: SpecRef;
228
- name?: string;
229
- model?: string;
230
- scope?: "org" | "user" | "registry";
231
- skills?: Array<string>;
232
- mcps?: Array<string>;
233
- };
234
219
  export type SpecInitialPrompt = {
235
220
  prompt: string;
236
221
  /**
237
222
  * Spec project slug the chat opens in; default = the first project.
238
223
  */
239
224
  project?: string;
225
+ };
226
+ export type SpecPod = {
227
+ name?: string;
228
+ icon?: string;
229
+ description?: string;
240
230
  /**
241
- * Spec agent slug the chat runs as; default = the meta agent.
231
+ * Ren model id, e.g. opus-5, sonnet-5.
242
232
  */
243
- agent?: string;
233
+ defaultModel?: string;
244
234
  };
245
235
  export type SpecPublic = {
246
- schemaVersion: 2;
236
+ schemaVersion: 3;
247
237
  meta: {
248
238
  name: string;
249
239
  description?: string;
@@ -252,20 +242,15 @@ export type SpecPublic = {
252
242
  */
253
243
  snapshotDate?: string;
254
244
  };
245
+ pod?: SpecPod;
255
246
  instructions?: string;
256
247
  initialPrompt?: SpecInitialPrompt;
257
- agents: Array<SpecPublicAgentEntry>;
258
248
  skills: Array<SpecPublicSkillEntry>;
259
249
  mcps: Array<SpecPublicMcpEntry>;
260
250
  projects: Array<SpecPublicProjectEntry>;
261
251
  triggers: Array<SpecPublicTriggerEntry>;
262
252
  environment?: {
263
- ref?: {
264
- /**
265
- * A live Ren entity id (e.g. agt_…, prj_…). Present ⇔ the entry is built/pinned.
266
- */
267
- id: string;
268
- };
253
+ preset?: PresetTemplate;
269
254
  };
270
255
  };
271
256
  export type PublisherLink = {
@@ -283,23 +268,20 @@ export type PublisherPublicView = {
283
268
  isVerified: boolean;
284
269
  links: Array<PublisherLink>;
285
270
  };
286
- export type BlueprintOutcome = {
287
- title: string;
288
- description: string;
289
- };
290
- export type BlueprintHowItWorksStep = {
291
- title: string;
292
- description: string;
293
- };
294
- export type BlueprintPageContent = {
295
- overview?: string;
296
- howItWorks?: Array<BlueprintHowItWorksStep>;
297
- useCases?: Array<string>;
298
- requirements?: Array<string>;
299
- setup?: Array<string>;
300
- outcomes?: Array<BlueprintOutcome>;
301
- relatedBlueprintSlugs?: Array<string>;
271
+ export type BlueprintComposition = {
272
+ /**
273
+ * The authored `uses` graph, kept for display after the compiler flattened it into the template.
274
+ */
275
+ uses: Array<{
276
+ slug: string;
277
+ into?: string;
278
+ }>;
302
279
  };
280
+ /**
281
+ * What a composite is organised around. Null on apps, and on composites nobody has shelved yet.
282
+ */
283
+ export type BlueprintType = "use-case" | "company" | "function";
284
+ export type BlueprintKind = "app" | "composite";
303
285
  export type BlueprintPublicListItem = {
304
286
  id: string;
305
287
  slug: string;
@@ -310,6 +292,27 @@ export type BlueprintPublicListItem = {
310
292
  publisher?: PublisherPublicView | null;
311
293
  updatedAt: string;
312
294
  };
295
+ export type SetupSource = {
296
+ name: string;
297
+ url?: string;
298
+ verifiedAt?: string;
299
+ };
300
+ export type SetupMedia = {
301
+ kind: "image" | "video";
302
+ url: string;
303
+ alt: string;
304
+ poster?: string;
305
+ };
306
+ export type Setup = {
307
+ /**
308
+ * Where the credential is actually issued — the button the guide points at.
309
+ */
310
+ url?: string;
311
+ markdown?: string;
312
+ media?: Array<SetupMedia>;
313
+ source?: SetupSource;
314
+ citations?: Array<string>;
315
+ };
313
316
  export type RequirementWhen = {
314
317
  name: string;
315
318
  op: "eq" | "neq";
@@ -761,6 +764,7 @@ export type CronTriggerDetail = {
761
764
  projectAgentId: string | null;
762
765
  senderUserId: string;
763
766
  inputMessage: string;
767
+ model: string | null;
764
768
  schedule: string;
765
769
  timezone: string | null;
766
770
  until: string | null;
@@ -787,6 +791,7 @@ export type CronTrigger = {
787
791
  projectAgentId: string | null;
788
792
  senderUserId: string;
789
793
  inputMessage: string;
794
+ model: string | null;
790
795
  schedule: string;
791
796
  timezone: string | null;
792
797
  until: string | null;
@@ -1012,6 +1017,10 @@ export type Topology = {
1012
1017
  * Fixed prompt delivered to the agent on each fire.
1013
1018
  */
1014
1019
  inputMessage: string;
1020
+ /**
1021
+ * Model this trigger's fires run on; absent inherits the agent/project default.
1022
+ */
1023
+ model?: string;
1015
1024
  }>;
1016
1025
  emails?: Array<{
1017
1026
  /**
@@ -1101,6 +1110,7 @@ export type SkillArchiveResult = {
1101
1110
  publisherId: string | null;
1102
1111
  parentId: string | null;
1103
1112
  websiteMetadata: WebsiteMetadata | null;
1113
+ setup: Setup | null;
1104
1114
  sortOrder: number | null;
1105
1115
  popularityScore: number | null;
1106
1116
  trendingScore: number | null;
@@ -1129,6 +1139,7 @@ export type Skill = {
1129
1139
  publisherId: string | null;
1130
1140
  parentId: string | null;
1131
1141
  websiteMetadata: WebsiteMetadata | null;
1142
+ setup: Setup | null;
1132
1143
  sortOrder: number | null;
1133
1144
  popularityScore: number | null;
1134
1145
  trendingScore: number | null;
@@ -1462,18 +1473,21 @@ export type AuthRequirementEnv = {
1462
1473
  description?: string;
1463
1474
  satisfied: boolean;
1464
1475
  neededBy: Array<AuthRequirementEnvSource>;
1476
+ setup: Setup | null;
1465
1477
  } | {
1466
1478
  kind: "secret";
1467
1479
  name: string;
1468
1480
  description?: string;
1469
1481
  satisfied: boolean;
1470
1482
  neededBy: Array<AuthRequirementEnvSource>;
1483
+ setup: Setup | null;
1471
1484
  } | {
1472
1485
  kind: "oauth_app";
1473
1486
  name: string;
1474
1487
  description?: string;
1475
1488
  satisfied: boolean;
1476
1489
  neededBy: Array<AuthRequirementEnvSource>;
1490
+ setup: Setup | null;
1477
1491
  } | {
1478
1492
  kind: "text";
1479
1493
  name: string;
@@ -1483,6 +1497,7 @@ export type AuthRequirementEnv = {
1483
1497
  when?: RequirementWhen;
1484
1498
  satisfied: boolean;
1485
1499
  neededBy: Array<AuthRequirementEnvSource>;
1500
+ setup: Setup | null;
1486
1501
  } | {
1487
1502
  kind: "select";
1488
1503
  name: string;
@@ -1496,6 +1511,7 @@ export type AuthRequirementEnv = {
1496
1511
  when?: RequirementWhen;
1497
1512
  satisfied: boolean;
1498
1513
  neededBy: Array<AuthRequirementEnvSource>;
1514
+ setup: Setup | null;
1499
1515
  };
1500
1516
  export type McpAuthConfig = {
1501
1517
  type: "oauth";
@@ -1537,6 +1553,7 @@ export type AuthRequirementMcp = {
1537
1553
  authConfig: McpAuthConfig | null;
1538
1554
  satisfied: boolean;
1539
1555
  neededByAgentIds: Array<string>;
1556
+ setup: Setup | null;
1540
1557
  };
1541
1558
  export type PodCredentials = {
1542
1559
  writeVaultId: string | null;
@@ -1565,7 +1582,6 @@ export type PodWithSandbox = {
1565
1582
  pod: Pod;
1566
1583
  sandbox: Sandbox;
1567
1584
  };
1568
- export type PresetTemplate = "xs" | "small" | "medium" | "large" | "xl";
1569
1585
  export type Pod = {
1570
1586
  id: string;
1571
1587
  name: string;
@@ -1732,6 +1748,7 @@ export type Mcp = {
1732
1748
  userId: string | null;
1733
1749
  publisherId: string | null;
1734
1750
  websiteMetadata: WebsiteMetadata | null;
1751
+ setup: Setup | null;
1735
1752
  sortOrder: number | null;
1736
1753
  popularityScore: number | null;
1737
1754
  trendingScore: number | null;
@@ -2053,11 +2070,10 @@ export type BlueprintInstallProjectTarget = {
2053
2070
  projectId: string;
2054
2071
  };
2055
2072
  export type BlueprintInstallReport = {
2056
- agents: Array<string>;
2057
2073
  skills: Array<string>;
2058
2074
  mcps: Array<string>;
2059
2075
  skipped: Array<{
2060
- kind: "skill" | "agent" | "mcp" | "project" | "trigger" | "environment";
2076
+ kind: "skill" | "mcp" | "project" | "trigger" | "environment" | "gitRepo";
2061
2077
  sourceId: string;
2062
2078
  reason: string;
2063
2079
  }>;
@@ -2069,7 +2085,6 @@ export type BlueprintInstallReport = {
2069
2085
  initialPrompt?: {
2070
2086
  prompt: string;
2071
2087
  projectId?: string;
2072
- agentId?: string;
2073
2088
  };
2074
2089
  };
2075
2090
  export type BlueprintInstallProjectMapping = {
@@ -2093,7 +2108,6 @@ export type BlueprintInstallRequirement = {
2093
2108
  };
2094
2109
  export type BlueprintSelection = {
2095
2110
  projectIds?: Array<string>;
2096
- agentIds?: Array<string>;
2097
2111
  skillIds?: Array<string>;
2098
2112
  mcpIds?: Array<string>;
2099
2113
  replayIds?: Array<string>;
@@ -2102,6 +2116,9 @@ export type BlueprintSelection = {
2102
2116
  export type Blueprint = {
2103
2117
  id: string;
2104
2118
  slug: string;
2119
+ kind: BlueprintKind;
2120
+ type: BlueprintType | null;
2121
+ brandColor: string | null;
2105
2122
  name: string;
2106
2123
  description: string | null;
2107
2124
  orgId: string;
@@ -2109,7 +2126,11 @@ export type Blueprint = {
2109
2126
  publisherId: string | null;
2110
2127
  template: Spec;
2111
2128
  replays: Array<string>;
2112
- pageContent: BlueprintPageContent | null;
2129
+ /**
2130
+ * Starter prompts the composer offers. Suggestions — unlike `initialPrompt`, nothing sends them.
2131
+ */
2132
+ examplePrompts: Array<string>;
2133
+ composition: BlueprintComposition | null;
2113
2134
  websiteMetadata: WebsiteMetadata | null;
2114
2135
  createdAt: string;
2115
2136
  updatedAt: string;
@@ -2121,14 +2142,12 @@ export type Blueprint = {
2121
2142
  export type SpecEnvironmentDef = {
2122
2143
  networking: NetworkingConfig;
2123
2144
  packages: PackagesConfig;
2145
+ cpuCount?: TemplateCpuCount;
2146
+ memoryMB?: TemplateMemoryMb;
2147
+ buildCommands?: Array<string>;
2124
2148
  };
2125
2149
  export type SpecEnvironmentEntry = {
2126
- ref?: {
2127
- /**
2128
- * A live Ren entity id (e.g. agt_…, prj_…). Present ⇔ the entry is built/pinned.
2129
- */
2130
- id: string;
2131
- };
2150
+ preset?: PresetTemplate;
2132
2151
  def?: SpecEnvironmentDef;
2133
2152
  requirements?: Array<SpecRequirement>;
2134
2153
  notes?: string;
@@ -2172,10 +2191,6 @@ export type SpecCronTriggerEntry = {
2172
2191
  * Slug of the project this cron belongs to.
2173
2192
  */
2174
2193
  project: string;
2175
- /**
2176
- * Project-agent slug this cron fires; default = the meta agent.
2177
- */
2178
- agent?: string;
2179
2194
  schedule: string;
2180
2195
  timezone?: string;
2181
2196
  /**
@@ -2183,6 +2198,10 @@ export type SpecCronTriggerEntry = {
2183
2198
  */
2184
2199
  until?: string;
2185
2200
  inputMessage: string;
2201
+ /**
2202
+ * Ren model id the fires run on, e.g. opus-5, sonnet-5.
2203
+ */
2204
+ model?: string;
2186
2205
  enabled?: boolean;
2187
2206
  requirements?: Array<SpecRequirement>;
2188
2207
  notes?: string;
@@ -2190,9 +2209,9 @@ export type SpecCronTriggerEntry = {
2190
2209
  export type SpecProjectDef = {
2191
2210
  name: string;
2192
2211
  description?: string;
2212
+ icon?: string;
2193
2213
  instructions?: string;
2194
2214
  references?: ProjectReferences;
2195
- agents?: Array<SpecProjectAgent>;
2196
2215
  /**
2197
2216
  * Spec skill slugs attached to this project.
2198
2217
  */
@@ -2202,6 +2221,11 @@ export type SpecProjectDef = {
2202
2221
  */
2203
2222
  mcps?: Array<string>;
2204
2223
  permission?: PermissionConfig;
2224
+ /**
2225
+ * Ren model id, e.g. opus-5, sonnet-5.
2226
+ */
2227
+ defaultModel?: string;
2228
+ gitRepos?: Array<ProjectGitRepo>;
2205
2229
  /**
2206
2230
  * Business priority among otherwise-independent projects.
2207
2231
  */
@@ -2221,11 +2245,20 @@ export type SpecProjectEntry = {
2221
2245
  export type SpecMcpDef = {
2222
2246
  name: string;
2223
2247
  registrySlug?: string;
2248
+ type?: "local" | "remote";
2224
2249
  /**
2225
2250
  * Custom (non-registry) remote MCP server url.
2226
2251
  */
2227
2252
  remoteUrl?: string;
2228
2253
  auth?: "oauth" | "basic" | "api_key" | "none" | "mcp_provider";
2254
+ timeout?: number;
2255
+ /**
2256
+ * Credential names only — never values.
2257
+ */
2258
+ requiredCredentials?: Array<{
2259
+ name: string;
2260
+ description?: string;
2261
+ }>;
2229
2262
  };
2230
2263
  export type SpecMcpEntry = {
2231
2264
  /**
@@ -2258,36 +2291,6 @@ export type SpecSkillEntry = {
2258
2291
  requirements?: Array<SpecRequirement>;
2259
2292
  notes?: string;
2260
2293
  };
2261
- export type SpecAgentDef = {
2262
- name: string;
2263
- /**
2264
- * Ren model id, e.g. opus-5, sonnet-5.
2265
- */
2266
- model?: string;
2267
- scope?: "org" | "user" | "registry";
2268
- /**
2269
- * What the prompt must accomplish. The actual prompt lives in agentVersion, reached via ref.versionId.
2270
- */
2271
- promptIntent?: string;
2272
- /**
2273
- * Spec skill slugs attached to this agent.
2274
- */
2275
- skills?: Array<string>;
2276
- /**
2277
- * Spec mcp slugs wired to this agent.
2278
- */
2279
- mcps?: Array<string>;
2280
- };
2281
- export type SpecAgentEntry = {
2282
- /**
2283
- * Kebab-case key. The only way entries reference each other; survives the planned→built transition.
2284
- */
2285
- slug: string;
2286
- ref?: SpecRef;
2287
- def?: SpecAgentDef;
2288
- requirements?: Array<SpecRequirement>;
2289
- notes?: string;
2290
- };
2291
2294
  export type SpecBrief = {
2292
2295
  /**
2293
2296
  * The business function / company this maps onto Ren.
@@ -2309,15 +2312,15 @@ export type SpecMeta = {
2309
2312
  notes?: string;
2310
2313
  };
2311
2314
  export type Spec = {
2312
- schemaVersion: 2;
2315
+ schemaVersion: 3;
2313
2316
  meta: SpecMeta;
2314
2317
  brief?: SpecBrief;
2318
+ pod?: SpecPod;
2315
2319
  /**
2316
2320
  * Pod-level instructions appended to the install-target pod.
2317
2321
  */
2318
2322
  instructions?: string;
2319
2323
  initialPrompt?: SpecInitialPrompt;
2320
- agents: Array<SpecAgentEntry>;
2321
2324
  skills: Array<SpecSkillEntry>;
2322
2325
  mcps: Array<SpecMcpEntry>;
2323
2326
  projects: Array<SpecProjectEntry>;
@@ -2515,7 +2518,7 @@ export type AgentCreateData = {
2515
2518
  name: string;
2516
2519
  icon?: string | null;
2517
2520
  tags?: Array<string> | null;
2518
- visibility?: "private" | "pod" | "org";
2521
+ visibility?: "private" | "org";
2519
2522
  /**
2520
2523
  * Explicit semver (e.g. 1.2.0) or a bump keyword (major|minor|patch, default patch).
2521
2524
  */
@@ -3267,11 +3270,10 @@ export type BlueprintCreateData = {
3267
3270
  name: string;
3268
3271
  description?: string;
3269
3272
  websiteMetadata?: WebsiteMetadata | null;
3270
- pageContent?: BlueprintPageContent | null;
3271
3273
  instructions?: string;
3272
3274
  initialPrompt?: SpecInitialPrompt;
3273
3275
  selection: BlueprintSelection;
3274
- visibility?: "private" | "pod" | "org";
3276
+ visibility?: "private" | "org";
3275
3277
  };
3276
3278
  path?: never;
3277
3279
  query?: never;
@@ -3323,8 +3325,21 @@ export type BlueprintPushData = {
3323
3325
  * Existing blueprint to update in place; omit to create a new one.
3324
3326
  */
3325
3327
  id?: string;
3328
+ /**
3329
+ * Stable upsert key, so a git-driven publish is idempotent. Takes precedence over `id`.
3330
+ */
3331
+ slug?: string;
3326
3332
  name?: string;
3327
3333
  description?: string;
3334
+ kind?: BlueprintKind;
3335
+ type?: BlueprintType | null;
3336
+ /**
3337
+ * Starter prompts the composer offers. Suggestions — unlike `initialPrompt`, nothing sends them.
3338
+ */
3339
+ examplePrompts?: Array<string>;
3340
+ brandColor?: string | null;
3341
+ composition?: BlueprintComposition | null;
3342
+ websiteMetadata?: WebsiteMetadata | null;
3328
3343
  spec: Spec;
3329
3344
  };
3330
3345
  path?: never;
@@ -3372,6 +3387,16 @@ export type BlueprintPushErrors = {
3372
3387
  */
3373
3388
  code?: "mcp_duplicate_url";
3374
3389
  };
3390
+ /**
3391
+ * Conflict
3392
+ */
3393
+ 409: {
3394
+ error: string;
3395
+ /**
3396
+ * Stable discriminator for errors a client branches on.
3397
+ */
3398
+ code?: "mcp_duplicate_url";
3399
+ };
3375
3400
  };
3376
3401
  export type BlueprintPushError = BlueprintPushErrors[keyof BlueprintPushErrors];
3377
3402
  export type BlueprintPushResponses = {
@@ -3490,7 +3515,6 @@ export type BlueprintUpdateData = {
3490
3515
  name?: string;
3491
3516
  description?: string;
3492
3517
  websiteMetadata?: WebsiteMetadata | null;
3493
- pageContent?: BlueprintPageContent | null;
3494
3518
  instructions?: string;
3495
3519
  initialPrompt?: SpecInitialPrompt | null;
3496
3520
  selection?: BlueprintSelection;
@@ -3795,10 +3819,10 @@ export type BillingGetResponses = {
3795
3819
  consumedAmountCents: number;
3796
3820
  grantedCredits: string;
3797
3821
  freeGrantCredits: string;
3798
- plan: "free" | "plan_100" | "plan_200";
3822
+ plan: "free" | "plan_50" | "plan_75" | "plan_100" | "plan_150" | "plan_200" | "plan_300" | "plan_400" | "plan_500" | "plan_750" | "plan_1000" | "plan_1500" | "plan_2000" | "plan_3000" | "plan_4000" | "plan_5000" | "plan_7500" | "plan_10000";
3799
3823
  planStatus: string | null;
3800
3824
  renewsAt: string | null;
3801
- pendingPlan: "plan_100" | "plan_200" | null;
3825
+ pendingPlan: "plan_50" | "plan_75" | "plan_100" | "plan_150" | "plan_200" | "plan_300" | "plan_400" | "plan_500" | "plan_750" | "plan_1000" | "plan_1500" | "plan_2000" | "plan_3000" | "plan_4000" | "plan_5000" | "plan_7500" | "plan_10000" | null;
3802
3826
  };
3803
3827
  };
3804
3828
  export type BillingGetResponse = BillingGetResponses[keyof BillingGetResponses];
@@ -4001,13 +4025,12 @@ export type BillingPlansResponses = {
4001
4025
  * Subscription plans
4002
4026
  */
4003
4027
  200: Array<{
4004
- key: "plan_100" | "plan_200";
4028
+ key: "plan_50" | "plan_75" | "plan_100" | "plan_150" | "plan_200" | "plan_300" | "plan_400" | "plan_500" | "plan_750" | "plan_1000" | "plan_1500" | "plan_2000" | "plan_3000" | "plan_4000" | "plan_5000" | "plan_7500" | "plan_10000";
4005
4029
  priceCents: number;
4006
4030
  creditsPerCycle: number;
4007
4031
  name: string;
4008
4032
  description: string | null;
4009
4033
  tagline: string | null;
4010
- features: Array<string>;
4011
4034
  badge: string | null;
4012
4035
  sortOrder: number;
4013
4036
  }>;
@@ -4015,7 +4038,7 @@ export type BillingPlansResponses = {
4015
4038
  export type BillingPlansResponse = BillingPlansResponses[keyof BillingPlansResponses];
4016
4039
  export type BillingSubscribeData = {
4017
4040
  body?: {
4018
- plan: "plan_100" | "plan_200";
4041
+ plan: "plan_50" | "plan_75" | "plan_100" | "plan_150" | "plan_200" | "plan_300" | "plan_400" | "plan_500" | "plan_750" | "plan_1000" | "plan_1500" | "plan_2000" | "plan_3000" | "plan_4000" | "plan_5000" | "plan_7500" | "plan_10000";
4019
4042
  };
4020
4043
  path?: never;
4021
4044
  query?: never;
@@ -4113,7 +4136,7 @@ export type BillingPortalResponses = {
4113
4136
  export type BillingPortalResponse = BillingPortalResponses[keyof BillingPortalResponses];
4114
4137
  export type BillingChangePlanData = {
4115
4138
  body?: {
4116
- plan: "plan_100" | "plan_200";
4139
+ plan: "plan_50" | "plan_75" | "plan_100" | "plan_150" | "plan_200" | "plan_300" | "plan_400" | "plan_500" | "plan_750" | "plan_1000" | "plan_1500" | "plan_2000" | "plan_3000" | "plan_4000" | "plan_5000" | "plan_7500" | "plan_10000";
4117
4140
  };
4118
4141
  path?: never;
4119
4142
  query?: never;
@@ -4324,7 +4347,7 @@ export type EnvironmentCreateData = {
4324
4347
  cpuCount?: TemplateCpuCount;
4325
4348
  memoryMB?: TemplateMemoryMb;
4326
4349
  buildCommands?: Array<string>;
4327
- visibility?: "private" | "pod" | "org";
4350
+ visibility?: "private" | "org";
4328
4351
  };
4329
4352
  path?: never;
4330
4353
  query?: never;
@@ -4694,12 +4717,10 @@ export type FileStoreListData = {
4694
4717
  body?: never;
4695
4718
  path?: never;
4696
4719
  query?: {
4697
- orgId?: string;
4698
4720
  limit?: number;
4699
4721
  offset?: number;
4700
4722
  includeDeprecated?: boolean;
4701
- userId?: string | null;
4702
- visibility?: "private" | "pod" | "org";
4723
+ visibility?: "private" | "org";
4703
4724
  };
4704
4725
  url: "/api/file-stores";
4705
4726
  };
@@ -4738,7 +4759,7 @@ export type FileStoreCreateData = {
4738
4759
  name: string;
4739
4760
  description?: string;
4740
4761
  isDefault?: boolean;
4741
- visibility?: "private" | "pod" | "org";
4762
+ visibility?: "private" | "org";
4742
4763
  };
4743
4764
  path?: never;
4744
4765
  query?: never;
@@ -6284,8 +6305,9 @@ export type McpCreateData = {
6284
6305
  */
6285
6306
  auth?: "none" | "oauth" | "api_key" | "basic" | "mcp_provider";
6286
6307
  authConfig?: McpAuthConfig | null;
6308
+ setup?: Setup | null;
6287
6309
  tags?: Array<string> | null;
6288
- visibility?: "private" | "pod" | "org";
6310
+ visibility?: "private" | "org";
6289
6311
  /**
6290
6312
  * Register this URL even though another MCP already uses it — a second account on the same server.
6291
6313
  */
@@ -6517,6 +6539,7 @@ export type McpUpdateData = {
6517
6539
  auth?: "none" | "oauth" | "api_key" | "basic" | "mcp_provider";
6518
6540
  authConfig?: McpAuthConfig | null;
6519
6541
  websiteMetadata?: WebsiteMetadata | null;
6542
+ setup?: Setup | null;
6520
6543
  tags?: Array<string> | null;
6521
6544
  };
6522
6545
  path: {
@@ -6993,12 +7016,10 @@ export type MemoryStoreListData = {
6993
7016
  body?: never;
6994
7017
  path?: never;
6995
7018
  query?: {
6996
- orgId?: string;
6997
7019
  limit?: number;
6998
7020
  offset?: number;
6999
7021
  includeDeprecated?: boolean;
7000
- userId?: string | null;
7001
- visibility?: "private" | "pod" | "org";
7022
+ visibility?: "private" | "org";
7002
7023
  };
7003
7024
  url: "/api/memory-stores";
7004
7025
  };
@@ -7037,7 +7058,7 @@ export type MemoryStoreCreateData = {
7037
7058
  name: string;
7038
7059
  description?: string;
7039
7060
  isDefault?: boolean;
7040
- visibility?: "private" | "pod" | "org";
7061
+ visibility?: "private" | "org";
7041
7062
  };
7042
7063
  path?: never;
7043
7064
  query?: never;
@@ -8060,7 +8081,7 @@ export type PodCreateData = {
8060
8081
  isDefault?: boolean;
8061
8082
  presetTemplate?: PresetTemplate;
8062
8083
  createDefaultProject?: boolean;
8063
- visibility?: "private" | "pod" | "org";
8084
+ visibility?: "private" | "org";
8064
8085
  };
8065
8086
  path?: never;
8066
8087
  query?: never;
@@ -9396,7 +9417,7 @@ export type ProjectCreateData = {
9396
9417
  permission?: PermissionConfig;
9397
9418
  gitRepos?: Array<ProjectGitRepo>;
9398
9419
  references?: ProjectReferences;
9399
- visibility?: "private" | "pod" | "org";
9420
+ visibility?: "private" | "org";
9400
9421
  };
9401
9422
  path?: never;
9402
9423
  query?: never;
@@ -10881,7 +10902,7 @@ export type ReplayCreateData = {
10881
10902
  publisherId?: string | null;
10882
10903
  websiteMetadata?: WebsiteMetadata | null;
10883
10904
  shareToken?: string | null;
10884
- visibility?: "private" | "pod" | "org";
10905
+ visibility?: "private" | "org";
10885
10906
  };
10886
10907
  path?: never;
10887
10908
  query?: never;
@@ -12112,6 +12133,7 @@ export type SkillCreateData = {
12112
12133
  docUrl?: string | null;
12113
12134
  repository?: Repository | null;
12114
12135
  websiteMetadata?: WebsiteMetadata | null;
12136
+ setup?: Setup | null;
12115
12137
  version?: string;
12116
12138
  releaseNotes?: string;
12117
12139
  requiredCredentials?: Array<SkillRequiredCredential>;
@@ -12144,7 +12166,7 @@ export type SkillCreateData = {
12144
12166
  */
12145
12167
  path?: string;
12146
12168
  };
12147
- visibility?: "private" | "pod" | "org";
12169
+ visibility?: "private" | "org";
12148
12170
  };
12149
12171
  path?: never;
12150
12172
  query?: never;
@@ -12262,6 +12284,7 @@ export type SkillUpdateData = {
12262
12284
  docUrl?: string | null;
12263
12285
  repository?: Repository | null;
12264
12286
  websiteMetadata?: WebsiteMetadata | null;
12287
+ setup?: Setup | null;
12265
12288
  tags?: Array<string> | null;
12266
12289
  };
12267
12290
  path: {
@@ -12368,6 +12391,88 @@ export type SkillArchiveResponses = {
12368
12391
  200: SkillArchiveResult;
12369
12392
  };
12370
12393
  export type SkillArchiveResponse = SkillArchiveResponses[keyof SkillArchiveResponses];
12394
+ export type SkillSourceUpdateData = {
12395
+ body?: {
12396
+ type: "git";
12397
+ /**
12398
+ * HTTPS git repository URL (https:// only). Public repos are cloned directly; private repos use the org's GitHub installation.
12399
+ */
12400
+ url: string;
12401
+ /**
12402
+ * Branch, tag, or commit to mirror. Omitted = the remote's default branch (HEAD). Floating refs are re-resolved at index build time.
12403
+ */
12404
+ ref?: string;
12405
+ /**
12406
+ * Subdirectory containing SKILL.md, relative to the repo root. No leading slash or '..' segments.
12407
+ */
12408
+ path?: string;
12409
+ };
12410
+ path: {
12411
+ id: string;
12412
+ };
12413
+ query?: never;
12414
+ url: "/api/skills/{id}/source";
12415
+ };
12416
+ export type SkillSourceUpdateErrors = {
12417
+ /**
12418
+ * Bad request
12419
+ */
12420
+ 400: {
12421
+ error: string;
12422
+ /**
12423
+ * Stable discriminator for errors a client branches on.
12424
+ */
12425
+ code?: "mcp_duplicate_url";
12426
+ };
12427
+ /**
12428
+ * Unauthorized
12429
+ */
12430
+ 401: {
12431
+ error: string;
12432
+ /**
12433
+ * Stable discriminator for errors a client branches on.
12434
+ */
12435
+ code?: "mcp_duplicate_url";
12436
+ };
12437
+ /**
12438
+ * Forbidden
12439
+ */
12440
+ 403: {
12441
+ error: string;
12442
+ /**
12443
+ * Stable discriminator for errors a client branches on.
12444
+ */
12445
+ code?: "mcp_duplicate_url";
12446
+ };
12447
+ /**
12448
+ * Not found
12449
+ */
12450
+ 404: {
12451
+ error: string;
12452
+ /**
12453
+ * Stable discriminator for errors a client branches on.
12454
+ */
12455
+ code?: "mcp_duplicate_url";
12456
+ };
12457
+ /**
12458
+ * Conflict
12459
+ */
12460
+ 409: {
12461
+ error: string;
12462
+ /**
12463
+ * Stable discriminator for errors a client branches on.
12464
+ */
12465
+ code?: "mcp_duplicate_url";
12466
+ };
12467
+ };
12468
+ export type SkillSourceUpdateError = SkillSourceUpdateErrors[keyof SkillSourceUpdateErrors];
12469
+ export type SkillSourceUpdateResponses = {
12470
+ /**
12471
+ * Updated skill
12472
+ */
12473
+ 200: Skill;
12474
+ };
12475
+ export type SkillSourceUpdateResponse = SkillSourceUpdateResponses[keyof SkillSourceUpdateResponses];
12371
12476
  export type SkillPublishData = {
12372
12477
  body?: never;
12373
12478
  path: {
@@ -12538,7 +12643,7 @@ export type SkillCopyData = {
12538
12643
  body?: {
12539
12644
  name: string;
12540
12645
  version?: string;
12541
- visibility?: "private" | "pod" | "org";
12646
+ visibility?: "private" | "org";
12542
12647
  };
12543
12648
  path: {
12544
12649
  id: string;
@@ -13232,6 +13337,10 @@ export type CronTriggerCreateData = {
13232
13337
  * Prompt delivered to the agent on every fire.
13233
13338
  */
13234
13339
  inputMessage: string;
13340
+ /**
13341
+ * Ren model key this trigger's fires run on (e.g. "opus-5", "sonnet-5"); null inherits the agent's model, then the project/pod/org default. Applies to the fired turn only, not to human replies in the session.
13342
+ */
13343
+ model?: string | null;
13235
13344
  /**
13236
13345
  * Cron expression that fires the trigger. Overlapping ticks are skipped (Temporal overlap policy SKIP).
13237
13346
  */
@@ -13364,6 +13473,10 @@ export type CronTriggerUpdateData = {
13364
13473
  * Prompt delivered to the agent on every fire.
13365
13474
  */
13366
13475
  inputMessage?: string;
13476
+ /**
13477
+ * Ren model key this trigger's fires run on (e.g. "opus-5", "sonnet-5"); null inherits the agent's model, then the project/pod/org default. Applies to the fired turn only, not to human replies in the session.
13478
+ */
13479
+ model?: string | null;
13367
13480
  /**
13368
13481
  * Cron expression that fires the trigger. Overlapping ticks are skipped (Temporal overlap policy SKIP).
13369
13482
  */