@renai-labs/sdk 0.1.20 → 0.1.22

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,19 @@
1
1
  export type ClientOptions = {
2
2
  baseUrl: `${string}://${string}` | (string & {});
3
3
  };
4
+ export type SandboxArtifactTarget = {
5
+ podId: string;
6
+ bucket: string;
7
+ region: string;
8
+ endpoint: string | null;
9
+ prefix: string;
10
+ };
11
+ export type SandboxVolumeCreds = {
12
+ accessKeyId: string;
13
+ secretAccessKey: string;
14
+ sessionToken: string;
15
+ expiresAt: string;
16
+ };
4
17
  export type OpencodeSessionSyncSeq = {
5
18
  sessionId: string;
6
19
  latestSeq: number;
@@ -19,30 +32,40 @@ export type SandboxManifest = {
19
32
  environment: {
20
33
  [key: string]: string;
21
34
  };
22
- runtimeSetup: SandboxManifestRuntimeSetup;
23
35
  members: Array<SandboxManifestMember>;
24
- podVolume: SandboxMountedVolume;
36
+ podVolume: SandboxVolumeConfig;
37
+ databaseReplication: SandboxManifestDatabaseReplication | null;
38
+ artifacts: SandboxManifestArtifacts | null;
25
39
  updatedAt: string;
26
40
  };
41
+ export type SandboxManifestArtifact = {
42
+ slug: string;
43
+ path: string;
44
+ };
45
+ export type SandboxManifestArtifacts = {
46
+ bucket: string;
47
+ region: string;
48
+ endpoint: string | null;
49
+ prefix: string;
50
+ artifacts: Array<SandboxManifestArtifact>;
51
+ };
52
+ export type SandboxManifestDatabase = {
53
+ slug: string;
54
+ path: string;
55
+ };
56
+ export type SandboxManifestDatabaseReplication = {
57
+ bucket: string;
58
+ region: string;
59
+ endpoint: string | null;
60
+ prefix: string;
61
+ databases: Array<SandboxManifestDatabase>;
62
+ };
27
63
  export type SandboxManifestMember = {
28
64
  userId: string;
29
65
  memberId: string;
30
66
  role: "owner" | "member";
31
67
  };
32
- export type SandboxManifestRuntimeSetupStep = {
33
- manager: "apt" | "npm" | "pip" | "cargo" | "gem" | "go";
34
- argv: Array<string>;
35
- };
36
- export type SandboxManifestRuntimeSetup = {
37
- steps: Array<SandboxManifestRuntimeSetupStep>;
38
- };
39
- export type SandboxVolumeCreds = {
40
- accessKeyId: string;
41
- secretAccessKey: string;
42
- sessionToken: string;
43
- expiresAt: string;
44
- };
45
- export type SandboxMountedVolume = {
68
+ export type SandboxVolumeConfig = {
46
69
  storeId: string;
47
70
  kind: "file-store" | "memory-store" | "pod";
48
71
  mountPath: string;
@@ -51,26 +74,6 @@ export type SandboxMountedVolume = {
51
74
  prefix: string;
52
75
  region: string;
53
76
  endpoint: string | null;
54
- creds: SandboxVolumeCreds;
55
- };
56
- export type SandboxManifestProjectSkillSource = {
57
- type: "s3";
58
- presignedUrl: string;
59
- } | {
60
- type: "git";
61
- url: string;
62
- ref?: string;
63
- path?: string;
64
- };
65
- export type SandboxManifestProjectSkillVersion = {
66
- versionId: string;
67
- version: string;
68
- source: SandboxManifestProjectSkillSource | null;
69
- };
70
- export type SandboxManifestProjectSkill = {
71
- skillId: string;
72
- skillSlug: string;
73
- versions: Array<SandboxManifestProjectSkillVersion>;
74
77
  };
75
78
  export type PermissionConfig = {
76
79
  __originalKeys?: Array<string>;
@@ -144,13 +147,31 @@ export type SandboxManifestProject = {
144
147
  [key: string]: unknown;
145
148
  };
146
149
  instructions?: string;
147
- skills: Array<SandboxManifestProjectSkill>;
148
- volumes: Array<SandboxMountedVolume>;
150
+ /**
151
+ * Menu base path (`projects/<projectId>`) under the skill-serve token root.
152
+ */
153
+ skillMenuPath?: string;
154
+ volumes: Array<SandboxVolumeConfig>;
155
+ };
156
+ export type SandboxModelKeyResponse = {
157
+ /**
158
+ * The current AI-model (LiteLLM) key for this workspace.
159
+ */
160
+ apiKey: string;
161
+ /**
162
+ * The LiteLLM base URL the key authenticates against.
163
+ */
164
+ url: string;
149
165
  };
150
166
  export type SandboxTokenResponse = {
151
167
  token: string;
152
168
  expiresAt: string;
153
169
  tokenId: string;
170
+ /**
171
+ * Skill-read token rotated alongside the session token; replaces any prior one for this sandbox.
172
+ */
173
+ skillReadToken: string;
174
+ skillReadExpiresAt: string;
154
175
  };
155
176
  export type WebsiteMetadata = {
156
177
  title?: string;
@@ -167,6 +188,10 @@ export type ReplayPublicListItem = {
167
188
  websiteMetadata: WebsiteMetadata | null;
168
189
  updatedAt: string;
169
190
  };
191
+ export type PublisherLink = {
192
+ label: string;
193
+ href: string;
194
+ };
170
195
  export type PublisherPublicView = {
171
196
  id: string;
172
197
  slug: string;
@@ -178,19 +203,6 @@ export type PublisherPublicView = {
178
203
  isVerified: boolean;
179
204
  links: Array<PublisherLink>;
180
205
  };
181
- export type PublisherLink = {
182
- label: string;
183
- href: string;
184
- };
185
- export type BlueprintPublicListItem = {
186
- id: string;
187
- slug: string;
188
- name: string;
189
- description: string | null;
190
- websiteMetadata: WebsiteMetadata | null;
191
- publisherId: string | null;
192
- updatedAt: string;
193
- };
194
206
  export type McpPublicView = {
195
207
  id: string;
196
208
  slug: string;
@@ -200,9 +212,10 @@ export type McpPublicView = {
200
212
  mcpServerUrl: string | null;
201
213
  docUrl: string | null;
202
214
  type: "remote" | "local";
203
- transport: "streamable-http" | "sse" | "stdio";
204
215
  command: string | null;
205
216
  args: Array<string>;
217
+ cwd: string | null;
218
+ timeout: McpTimeout | null;
206
219
  version: string | null;
207
220
  repository: Repository | null;
208
221
  tools: Array<string>;
@@ -223,15 +236,53 @@ export type McpPublicView = {
223
236
  deprecatedAt: string | null;
224
237
  deprecationMessage: string | null;
225
238
  tags?: Array<string>;
239
+ publisher?: PublisherPublicView | null;
240
+ };
241
+ export type RequirementWhen = {
242
+ name: string;
243
+ op: "eq" | "neq";
244
+ value: string;
226
245
  };
227
246
  export type RequiredCredential = {
247
+ kind?: "env";
248
+ name: string;
249
+ description?: string;
250
+ } | {
251
+ kind: "secret";
252
+ name: string;
253
+ description?: string;
254
+ } | {
255
+ kind: "oauth_app";
256
+ name: string;
257
+ description?: string;
258
+ } | {
259
+ kind: "text";
260
+ name: string;
261
+ description?: string;
262
+ message: string;
263
+ placeholder?: string;
264
+ when?: RequirementWhen;
265
+ } | {
266
+ kind: "select";
228
267
  name: string;
229
268
  description?: string;
269
+ message: string;
270
+ options: Array<{
271
+ label: string;
272
+ value: string;
273
+ hint?: string;
274
+ }>;
275
+ when?: RequirementWhen;
230
276
  };
231
277
  export type Repository = {
232
278
  url?: string;
233
279
  source?: string;
234
280
  };
281
+ export type McpTimeout = {
282
+ startup?: number;
283
+ catalog?: number;
284
+ execution?: number;
285
+ };
235
286
  export type SkillPublicView = {
236
287
  id: string;
237
288
  slug: string;
@@ -252,6 +303,7 @@ export type SkillPublicView = {
252
303
  deprecatedAt: string | null;
253
304
  deprecationMessage: string | null;
254
305
  tags?: Array<string>;
306
+ publisher?: PublisherPublicView | null;
255
307
  };
256
308
  export type AgentPublicView = {
257
309
  id: string;
@@ -266,6 +318,7 @@ export type AgentPublicView = {
266
318
  deprecatedAt: string | null;
267
319
  deprecationMessage: string | null;
268
320
  tags?: Array<string>;
321
+ publisher?: PublisherPublicView | null;
269
322
  latestVersion?: AgentLatestVersion | null;
270
323
  };
271
324
  export type AgentLatestVersion = {
@@ -277,6 +330,9 @@ export type AgentLatestVersion = {
277
330
  model: string | null;
278
331
  skills: Array<{
279
332
  skillId: string;
333
+ /**
334
+ * Pin a specific skill version, or null to track the skill's latest version.
335
+ */
280
336
  skillVersionId?: string | null;
281
337
  skill: {
282
338
  id: string;
@@ -295,51 +351,6 @@ export type AgentLatestVersion = {
295
351
  };
296
352
  }>;
297
353
  };
298
- export type Skill = {
299
- id: string;
300
- slug: string;
301
- name: string;
302
- description: string | null;
303
- icon: string | null;
304
- docUrl: string | null;
305
- repository: Repository | null;
306
- orgId: string;
307
- userId: string | null;
308
- publisherId: string | null;
309
- parentId: string | null;
310
- websiteMetadata: WebsiteMetadata | null;
311
- sortOrder: number | null;
312
- popularityScore: number | null;
313
- trendingScore: number | null;
314
- rank: number | null;
315
- latestVersionId: string | null;
316
- createdAt: string;
317
- updatedAt: string;
318
- archivedAt: string | null;
319
- deprecatedAt: string | null;
320
- deprecationMessage: string | null;
321
- tags?: Array<string>;
322
- };
323
- export type McpAuthConfig = {
324
- type: "oauth";
325
- scopes?: Array<string>;
326
- tokenEndpoint?: string;
327
- authorizationEndpoint?: string;
328
- tokenEndpointAuth?: "none" | "client_secret_basic" | "client_secret_post";
329
- } | {
330
- type: "api_key";
331
- headerName?: string;
332
- queryParam?: string;
333
- } | {
334
- type: "basic";
335
- } | {
336
- type: "none";
337
- } | {
338
- type: "mcp_provider";
339
- provider: "composio";
340
- toolkit: string;
341
- authConfigId: string;
342
- };
343
354
  export type OpencodeSession = {
344
355
  id: string;
345
356
  createdById: string;
@@ -383,62 +394,6 @@ export type OpencodeSession = {
383
394
  archivedAt: string | null;
384
395
  compactingAt: string | null;
385
396
  };
386
- export type Mcp = {
387
- id: string;
388
- slug: string;
389
- name: string;
390
- description: string | null;
391
- icon: string | null;
392
- mcpServerUrl: string | null;
393
- docUrl: string | null;
394
- type: "remote" | "local";
395
- transport: "streamable-http" | "sse" | "stdio";
396
- command: string | null;
397
- args: Array<string>;
398
- version: string | null;
399
- repository: Repository | null;
400
- tools: Array<string>;
401
- prompts: Array<string>;
402
- auth: "none" | "oauth" | "api_key" | "basic" | "mcp_provider";
403
- authConfig: McpAuthConfig | null;
404
- env: {
405
- [key: string]: string;
406
- };
407
- requiredCredentials: Array<RequiredCredential>;
408
- orgId: string;
409
- userId: string | null;
410
- publisherId: string | null;
411
- websiteMetadata: WebsiteMetadata | null;
412
- sortOrder: number | null;
413
- popularityScore: number | null;
414
- trendingScore: number | null;
415
- rank: number | null;
416
- createdAt: string;
417
- updatedAt: string;
418
- archivedAt: string | null;
419
- deprecatedAt: string | null;
420
- deprecationMessage: string | null;
421
- tags?: Array<string>;
422
- };
423
- export type Agent = {
424
- id: string;
425
- slug: string;
426
- name: string;
427
- icon: string | null;
428
- orgId: string;
429
- userId: string | null;
430
- publisherId: string | null;
431
- parentId: string | null;
432
- websiteMetadata: WebsiteMetadata | null;
433
- latestVersionId: string | null;
434
- createdAt: string;
435
- updatedAt: string;
436
- archivedAt: string | null;
437
- deprecatedAt: string | null;
438
- deprecationMessage: string | null;
439
- tags?: Array<string>;
440
- latestVersion?: AgentLatestVersion | null;
441
- };
442
397
  export type OAuthCallbackInput = string;
443
398
  export type HealthCheckData = {
444
399
  body?: never;
@@ -538,6 +493,30 @@ export type OrganizationLogoGetResponses = {
538
493
  200: Blob | File;
539
494
  };
540
495
  export type OrganizationLogoGetResponse = OrganizationLogoGetResponses[keyof OrganizationLogoGetResponses];
496
+ export type ResourceIconGetData = {
497
+ body?: never;
498
+ path: {
499
+ asset: string;
500
+ };
501
+ query?: never;
502
+ url: "/api/resource-icons/{asset}";
503
+ };
504
+ export type ResourceIconGetErrors = {
505
+ /**
506
+ * Not found
507
+ */
508
+ 404: {
509
+ error: string;
510
+ };
511
+ };
512
+ export type ResourceIconGetError = ResourceIconGetErrors[keyof ResourceIconGetErrors];
513
+ export type ResourceIconGetResponses = {
514
+ /**
515
+ * Processed resource icon
516
+ */
517
+ 200: Blob | File;
518
+ };
519
+ export type ResourceIconGetResponse = ResourceIconGetResponses[keyof ResourceIconGetResponses];
541
520
  export type RegistryAgentGetBySlugData = {
542
521
  body?: never;
543
522
  path: {
@@ -619,32 +598,6 @@ export type RegistryMcpGetBySlugResponses = {
619
598
  200: McpPublicView;
620
599
  };
621
600
  export type RegistryMcpGetBySlugResponse = RegistryMcpGetBySlugResponses[keyof RegistryMcpGetBySlugResponses];
622
- export type RegistryBlueprintListData = {
623
- body?: never;
624
- path?: never;
625
- query?: {
626
- limit?: number;
627
- offset?: number;
628
- includeDeprecated?: boolean;
629
- };
630
- url: "/api/registry/blueprints";
631
- };
632
- export type RegistryBlueprintListErrors = {
633
- /**
634
- * Bad request
635
- */
636
- 400: {
637
- error: string;
638
- };
639
- };
640
- export type RegistryBlueprintListError = RegistryBlueprintListErrors[keyof RegistryBlueprintListErrors];
641
- export type RegistryBlueprintListResponses = {
642
- /**
643
- * Published blueprint list
644
- */
645
- 200: Array<BlueprintPublicListItem>;
646
- };
647
- export type RegistryBlueprintListResponse = RegistryBlueprintListResponses[keyof RegistryBlueprintListResponses];
648
601
  export type RegistryPublisherListData = {
649
602
  body?: never;
650
603
  path?: never;
@@ -671,130 +624,6 @@ export type RegistryPublisherListResponses = {
671
624
  200: Array<PublisherPublicView>;
672
625
  };
673
626
  export type RegistryPublisherListResponse = RegistryPublisherListResponses[keyof RegistryPublisherListResponses];
674
- export type RegistryPublisherBlueprintsData = {
675
- body?: never;
676
- path: {
677
- /**
678
- * URL-friendly identifier
679
- */
680
- slug: string;
681
- };
682
- query?: {
683
- limit?: number;
684
- offset?: number;
685
- includeDeprecated?: boolean;
686
- };
687
- url: "/api/registry/publishers/{slug}/blueprints";
688
- };
689
- export type RegistryPublisherBlueprintsErrors = {
690
- /**
691
- * Not found
692
- */
693
- 404: {
694
- error: string;
695
- };
696
- };
697
- export type RegistryPublisherBlueprintsError = RegistryPublisherBlueprintsErrors[keyof RegistryPublisherBlueprintsErrors];
698
- export type RegistryPublisherBlueprintsResponses = {
699
- /**
700
- * Published blueprint list for the publisher
701
- */
702
- 200: Array<BlueprintPublicListItem>;
703
- };
704
- export type RegistryPublisherBlueprintsResponse = RegistryPublisherBlueprintsResponses[keyof RegistryPublisherBlueprintsResponses];
705
- export type RegistryPublisherSkillsData = {
706
- body?: never;
707
- path: {
708
- /**
709
- * URL-friendly identifier
710
- */
711
- slug: string;
712
- };
713
- query?: {
714
- limit?: number;
715
- offset?: number;
716
- includeDeprecated?: boolean;
717
- };
718
- url: "/api/registry/publishers/{slug}/skills";
719
- };
720
- export type RegistryPublisherSkillsErrors = {
721
- /**
722
- * Not found
723
- */
724
- 404: {
725
- error: string;
726
- };
727
- };
728
- export type RegistryPublisherSkillsError = RegistryPublisherSkillsErrors[keyof RegistryPublisherSkillsErrors];
729
- export type RegistryPublisherSkillsResponses = {
730
- /**
731
- * Published skill list for the publisher
732
- */
733
- 200: Array<Skill>;
734
- };
735
- export type RegistryPublisherSkillsResponse = RegistryPublisherSkillsResponses[keyof RegistryPublisherSkillsResponses];
736
- export type RegistryPublisherAgentsData = {
737
- body?: never;
738
- path: {
739
- /**
740
- * URL-friendly identifier
741
- */
742
- slug: string;
743
- };
744
- query?: {
745
- limit?: number;
746
- offset?: number;
747
- includeDeprecated?: boolean;
748
- };
749
- url: "/api/registry/publishers/{slug}/agents";
750
- };
751
- export type RegistryPublisherAgentsErrors = {
752
- /**
753
- * Not found
754
- */
755
- 404: {
756
- error: string;
757
- };
758
- };
759
- export type RegistryPublisherAgentsError = RegistryPublisherAgentsErrors[keyof RegistryPublisherAgentsErrors];
760
- export type RegistryPublisherAgentsResponses = {
761
- /**
762
- * Published agent list for the publisher
763
- */
764
- 200: Array<Agent>;
765
- };
766
- export type RegistryPublisherAgentsResponse = RegistryPublisherAgentsResponses[keyof RegistryPublisherAgentsResponses];
767
- export type RegistryPublisherMcpsData = {
768
- body?: never;
769
- path: {
770
- /**
771
- * URL-friendly identifier
772
- */
773
- slug: string;
774
- };
775
- query?: {
776
- limit?: number;
777
- offset?: number;
778
- includeDeprecated?: boolean;
779
- };
780
- url: "/api/registry/publishers/{slug}/mcps";
781
- };
782
- export type RegistryPublisherMcpsErrors = {
783
- /**
784
- * Not found
785
- */
786
- 404: {
787
- error: string;
788
- };
789
- };
790
- export type RegistryPublisherMcpsError = RegistryPublisherMcpsErrors[keyof RegistryPublisherMcpsErrors];
791
- export type RegistryPublisherMcpsResponses = {
792
- /**
793
- * Published MCP list for the publisher
794
- */
795
- 200: Array<Mcp>;
796
- };
797
- export type RegistryPublisherMcpsResponse = RegistryPublisherMcpsResponses[keyof RegistryPublisherMcpsResponses];
798
627
  export type RegistryReplayListData = {
799
628
  body?: never;
800
629
  path?: never;
@@ -980,6 +809,40 @@ export type SandboxOtelTracesResponses = {
980
809
  */
981
810
  202: unknown;
982
811
  };
812
+ export type SandboxModelKeyGetData = {
813
+ body?: never;
814
+ path?: never;
815
+ query?: never;
816
+ url: "/api/sandbox/model-key";
817
+ };
818
+ export type SandboxModelKeyGetErrors = {
819
+ /**
820
+ * Unauthorized
821
+ */
822
+ 401: {
823
+ error: string;
824
+ };
825
+ /**
826
+ * Forbidden
827
+ */
828
+ 403: {
829
+ error: string;
830
+ };
831
+ /**
832
+ * Not found
833
+ */
834
+ 404: {
835
+ error: string;
836
+ };
837
+ };
838
+ export type SandboxModelKeyGetError = SandboxModelKeyGetErrors[keyof SandboxModelKeyGetErrors];
839
+ export type SandboxModelKeyGetResponses = {
840
+ /**
841
+ * The current model key + base URL
842
+ */
843
+ 200: SandboxModelKeyResponse;
844
+ };
845
+ export type SandboxModelKeyGetResponse = SandboxModelKeyGetResponses[keyof SandboxModelKeyGetResponses];
983
846
  export type SandboxManifestGetData = {
984
847
  body?: never;
985
848
  path?: never;
@@ -1147,6 +1010,108 @@ export type SandboxVolumesMintCredsResponses = {
1147
1010
  200: SandboxVolumeCreds;
1148
1011
  };
1149
1012
  export type SandboxVolumesMintCredsResponse = SandboxVolumesMintCredsResponses[keyof SandboxVolumesMintCredsResponses];
1013
+ export type SandboxDatabasesMintCredsData = {
1014
+ body?: never;
1015
+ path?: never;
1016
+ query?: never;
1017
+ url: "/api/sandbox/databases/creds";
1018
+ };
1019
+ export type SandboxDatabasesMintCredsErrors = {
1020
+ /**
1021
+ * Unauthorized
1022
+ */
1023
+ 401: {
1024
+ error: string;
1025
+ };
1026
+ /**
1027
+ * Forbidden
1028
+ */
1029
+ 403: {
1030
+ error: string;
1031
+ };
1032
+ /**
1033
+ * Not found
1034
+ */
1035
+ 404: {
1036
+ error: string;
1037
+ };
1038
+ };
1039
+ export type SandboxDatabasesMintCredsError = SandboxDatabasesMintCredsErrors[keyof SandboxDatabasesMintCredsErrors];
1040
+ export type SandboxDatabasesMintCredsResponses = {
1041
+ /**
1042
+ * Database replication credentials
1043
+ */
1044
+ 200: SandboxVolumeCreds;
1045
+ };
1046
+ export type SandboxDatabasesMintCredsResponse = SandboxDatabasesMintCredsResponses[keyof SandboxDatabasesMintCredsResponses];
1047
+ export type SandboxArtifactsMintCredsData = {
1048
+ body?: never;
1049
+ path?: never;
1050
+ query?: never;
1051
+ url: "/api/sandbox/artifacts/creds";
1052
+ };
1053
+ export type SandboxArtifactsMintCredsErrors = {
1054
+ /**
1055
+ * Unauthorized
1056
+ */
1057
+ 401: {
1058
+ error: string;
1059
+ };
1060
+ /**
1061
+ * Forbidden
1062
+ */
1063
+ 403: {
1064
+ error: string;
1065
+ };
1066
+ /**
1067
+ * Not found
1068
+ */
1069
+ 404: {
1070
+ error: string;
1071
+ };
1072
+ };
1073
+ export type SandboxArtifactsMintCredsError = SandboxArtifactsMintCredsErrors[keyof SandboxArtifactsMintCredsErrors];
1074
+ export type SandboxArtifactsMintCredsResponses = {
1075
+ /**
1076
+ * Artifact sync credentials
1077
+ */
1078
+ 200: SandboxVolumeCreds;
1079
+ };
1080
+ export type SandboxArtifactsMintCredsResponse = SandboxArtifactsMintCredsResponses[keyof SandboxArtifactsMintCredsResponses];
1081
+ export type SandboxArtifactsTargetData = {
1082
+ body?: never;
1083
+ path?: never;
1084
+ query?: never;
1085
+ url: "/api/sandbox/artifacts";
1086
+ };
1087
+ export type SandboxArtifactsTargetErrors = {
1088
+ /**
1089
+ * Unauthorized
1090
+ */
1091
+ 401: {
1092
+ error: string;
1093
+ };
1094
+ /**
1095
+ * Forbidden
1096
+ */
1097
+ 403: {
1098
+ error: string;
1099
+ };
1100
+ /**
1101
+ * Not found
1102
+ */
1103
+ 404: {
1104
+ error: string;
1105
+ };
1106
+ };
1107
+ export type SandboxArtifactsTargetError = SandboxArtifactsTargetErrors[keyof SandboxArtifactsTargetErrors];
1108
+ export type SandboxArtifactsTargetResponses = {
1109
+ /**
1110
+ * Artifact sync target
1111
+ */
1112
+ 200: SandboxArtifactTarget;
1113
+ };
1114
+ export type SandboxArtifactsTargetResponse = SandboxArtifactsTargetResponses[keyof SandboxArtifactsTargetResponses];
1150
1115
  export type SandboxSessionUpdateData = {
1151
1116
  body?: {
1152
1117
  title?: string;
@@ -1395,6 +1360,7 @@ export type SandboxSlackReactData = {
1395
1360
  channelId: string;
1396
1361
  messageTs: string;
1397
1362
  emoji: string;
1363
+ remove?: boolean;
1398
1364
  };
1399
1365
  path?: never;
1400
1366
  query?: never;