@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.
- package/dist/generated/@tanstack/react-query.gen.d.ts +19 -17
- package/dist/generated/@tanstack/react-query.gen.js +18 -0
- package/dist/generated/internal/types.gen.d.ts +26 -0
- package/dist/generated/sdk.gen.d.ts +11 -1
- package/dist/generated/sdk.gen.js +21 -0
- package/dist/generated/types.gen.d.ts +245 -132
- package/dist/generated/zod.gen.d.ts +2088 -1026
- package/dist/generated/zod.gen.js +233 -114
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
*
|
|
231
|
+
* Ren model id, e.g. opus-5, sonnet-5.
|
|
242
232
|
*/
|
|
243
|
-
|
|
233
|
+
defaultModel?: string;
|
|
244
234
|
};
|
|
245
235
|
export type SpecPublic = {
|
|
246
|
-
schemaVersion:
|
|
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
|
-
|
|
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
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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" | "
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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
|
-
|
|
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" | "
|
|
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" | "
|
|
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
|
-
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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
|
*/
|