@renai-labs/sdk 0.1.6 → 0.1.8

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.
@@ -549,6 +549,60 @@ export class Github extends HeyApiClient {
549
549
  });
550
550
  }
551
551
  }
552
+ export class Config extends HeyApiClient {
553
+ /**
554
+ * Remove the org's Google Workspace OAuth app configuration
555
+ */
556
+ delete(options) {
557
+ return (options?.client ?? this.client).delete({ url: "/api/google/config", ...options });
558
+ }
559
+ /**
560
+ * Save the org's Google Workspace OAuth app credentials (BYO)
561
+ */
562
+ save(options) {
563
+ return (options?.client ?? this.client).put({
564
+ url: "/api/google/config",
565
+ ...options,
566
+ headers: {
567
+ "Content-Type": "application/json",
568
+ ...options?.headers,
569
+ },
570
+ });
571
+ }
572
+ }
573
+ export class Google extends HeyApiClient {
574
+ /**
575
+ * Report the org's Google Workspace OAuth app configuration
576
+ */
577
+ status(options) {
578
+ return (options?.client ?? this.client).get({
579
+ url: "/api/google/status",
580
+ ...options,
581
+ });
582
+ }
583
+ /**
584
+ * Disconnect the Google Workspace account stored in the given vault
585
+ */
586
+ disconnect(options) {
587
+ return (options.client ?? this.client).delete({
588
+ url: "/api/google/vaults/{vaultId}/connect",
589
+ ...options,
590
+ });
591
+ }
592
+ /**
593
+ * Begin connecting a Google Workspace account into the given vault
594
+ */
595
+ connect(options) {
596
+ return (options.client ?? this.client).post({
597
+ url: "/api/google/vaults/{vaultId}/connect",
598
+ ...options,
599
+ });
600
+ }
601
+ _config;
602
+ get config() {
603
+ return (this._config ??= new Config({ client: this.client }));
604
+ }
605
+ }
552
606
  export class Oauth extends HeyApiClient {
553
607
  /**
554
608
  * Start OAuth for an MCP (or confirm it is already connected)
@@ -1059,6 +1113,19 @@ export class Agent2 extends HeyApiClient {
1059
1113
  ...options,
1060
1114
  });
1061
1115
  }
1116
+ /**
1117
+ * Update an agent's membership in a project
1118
+ */
1119
+ update(options) {
1120
+ return (options.client ?? this.client).patch({
1121
+ url: "/api/projects/{id}/agents/{agentId}",
1122
+ ...options,
1123
+ headers: {
1124
+ "Content-Type": "application/json",
1125
+ ...options.headers,
1126
+ },
1127
+ });
1128
+ }
1062
1129
  }
1063
1130
  export class FileStore2 extends HeyApiClient {
1064
1131
  /**
@@ -1621,6 +1688,17 @@ export class Skill extends HeyApiClient {
1621
1688
  return (this._version ??= new Version2({ client: this.client }));
1622
1689
  }
1623
1690
  }
1691
+ export class Topology extends HeyApiClient {
1692
+ /**
1693
+ * Get agent-stack topology
1694
+ */
1695
+ get(options) {
1696
+ return (options?.client ?? this.client).get({
1697
+ url: "/api/topology",
1698
+ ...options,
1699
+ });
1700
+ }
1701
+ }
1624
1702
  export class Trigger extends HeyApiClient {
1625
1703
  /**
1626
1704
  * List cron triggers in a project
@@ -2143,6 +2221,10 @@ export class RenClient extends HeyApiClient {
2143
2221
  get github() {
2144
2222
  return (this._github ??= new Github({ client: this.client }));
2145
2223
  }
2224
+ _google;
2225
+ get google() {
2226
+ return (this._google ??= new Google({ client: this.client }));
2227
+ }
2146
2228
  _mcp;
2147
2229
  get mcp() {
2148
2230
  return (this._mcp ??= new Mcp({ client: this.client }));
@@ -2191,6 +2273,10 @@ export class RenClient extends HeyApiClient {
2191
2273
  get skill() {
2192
2274
  return (this._skill ??= new Skill({ client: this.client }));
2193
2275
  }
2276
+ _topology;
2277
+ get topology() {
2278
+ return (this._topology ??= new Topology({ client: this.client }));
2279
+ }
2194
2280
  _trigger;
2195
2281
  get trigger() {
2196
2282
  return (this._trigger ??= new Trigger({ client: this.client }));
@@ -150,6 +150,10 @@ export type BlueprintTemplate = {
150
150
  mcps: Array<BlueprintMcpRef>;
151
151
  replays: Array<BlueprintReplayRef>;
152
152
  };
153
+ export type RequiredCredential = {
154
+ name: string;
155
+ description?: string;
156
+ };
153
157
  export type Repository = {
154
158
  url?: string;
155
159
  source?: string;
@@ -159,6 +163,8 @@ export type AgentLatestVersion = {
159
163
  agentId: string;
160
164
  version: string;
161
165
  description: string | null;
166
+ prompt: string | null;
167
+ model: string | null;
162
168
  skills: Array<{
163
169
  skillId: string;
164
170
  skillVersionId?: string | null;
@@ -210,17 +216,27 @@ export type CredentialAuth = {
210
216
  id: number;
211
217
  login: string;
212
218
  name: string | null;
219
+ } | {
220
+ service: "google_workspace";
221
+ sub: string;
222
+ email: string;
223
+ name: string | null;
224
+ hd: string | null;
213
225
  } | null;
214
226
  } | {
215
227
  type: "env";
216
228
  value: string;
229
+ } | {
230
+ type: "basic";
231
+ username: string;
232
+ password: string;
217
233
  };
218
234
  export type Credential = {
219
235
  id: string;
220
236
  vaultId: string;
221
237
  name: string;
222
238
  mcpId: string | null;
223
- provider: "github" | null;
239
+ provider: "github" | "google_workspace" | null;
224
240
  label: string | null;
225
241
  keyPreview: string | null;
226
242
  auth: CredentialAuthPublic;
@@ -242,6 +258,9 @@ export type CredentialAuthPublic = {
242
258
  } | null;
243
259
  } | {
244
260
  type: "env";
261
+ } | {
262
+ type: "basic";
263
+ username: string;
245
264
  };
246
265
  export type Vault = {
247
266
  id: string;
@@ -315,6 +334,68 @@ export type CronTrigger = {
315
334
  updatedAt: string;
316
335
  archivedAt: string | null;
317
336
  };
337
+ export type Topology = {
338
+ surfaces: Array<{
339
+ id: string;
340
+ kind: "mcp" | "cron" | "webhook" | "slack" | "github";
341
+ name: string;
342
+ icon?: string;
343
+ tags: Array<string>;
344
+ ports: Array<{
345
+ id: string;
346
+ label: string;
347
+ targetProjectId: string;
348
+ }>;
349
+ vaultIds: Array<string>;
350
+ }>;
351
+ pods: Array<{
352
+ id: string;
353
+ name: string;
354
+ isPrivate: boolean;
355
+ }>;
356
+ projects: Array<{
357
+ id: string;
358
+ podId: string;
359
+ name: string;
360
+ agents: Array<{
361
+ id: string;
362
+ name: string;
363
+ icon?: string;
364
+ model?: string;
365
+ }>;
366
+ skillsCount: number;
367
+ }>;
368
+ vaults: Array<{
369
+ id: string;
370
+ name: string;
371
+ podIds: Array<string>;
372
+ credentials: Array<{
373
+ id: string;
374
+ label: string;
375
+ forSurfaceId?: string;
376
+ provider?: string;
377
+ }>;
378
+ }>;
379
+ stores: Array<{
380
+ id: string;
381
+ kind: "file" | "memory";
382
+ name: string;
383
+ mounts: Array<{
384
+ projectId: string;
385
+ }>;
386
+ }>;
387
+ env: {
388
+ id: string;
389
+ } | null;
390
+ edges: Array<{
391
+ id: string;
392
+ kind: "route" | "state" | "cred";
393
+ sourceId: string;
394
+ sourcePortId?: string;
395
+ targetId: string;
396
+ targetCredId?: string;
397
+ }>;
398
+ };
318
399
  export type SkillVersion = {
319
400
  id: string;
320
401
  skillId: string;
@@ -334,10 +415,6 @@ export type SkillVersion = {
334
415
  requiredCredentials: Array<RequiredCredential>;
335
416
  releaseNotes: string | null;
336
417
  };
337
- export type RequiredCredential = {
338
- name: string;
339
- description?: string;
340
- };
341
418
  export type Skill = {
342
419
  id: string;
343
420
  slug: string;
@@ -386,14 +463,16 @@ export type AuthRequirements = {
386
463
  mcps: Array<AuthRequirementMcp>;
387
464
  envs: Array<AuthRequirementEnv>;
388
465
  };
466
+ export type AuthRequirementEnvSource = {
467
+ kind: "skill" | "mcp";
468
+ id: string;
469
+ name: string;
470
+ };
389
471
  export type AuthRequirementEnv = {
390
472
  name: string;
391
473
  description?: string;
392
474
  satisfied: boolean;
393
- neededBy: Array<{
394
- skillId: string;
395
- skillName: string;
396
- }>;
475
+ neededBy: Array<AuthRequirementEnvSource>;
397
476
  };
398
477
  export type McpAuthConfig = {
399
478
  type: "oauth";
@@ -718,6 +797,10 @@ export type Mcp = {
718
797
  prompts: Array<string>;
719
798
  auth: "none" | "oauth" | "api_key" | "basic";
720
799
  authConfig: McpAuthConfig | null;
800
+ env: {
801
+ [key: string]: string;
802
+ };
803
+ requiredCredentials: Array<RequiredCredential>;
721
804
  orgId: string;
722
805
  userId: string | null;
723
806
  publisherId: string | null;
@@ -733,6 +816,15 @@ export type Mcp = {
733
816
  deprecationMessage: string | null;
734
817
  tags?: Array<string>;
735
818
  };
819
+ export type GoogleWorkspaceOAuthStartResult = {
820
+ url: string;
821
+ };
822
+ export type GoogleWorkspaceStatus = {
823
+ isConfigured: boolean;
824
+ clientId: string | null;
825
+ scopes: Array<string>;
826
+ redirectUri: string;
827
+ };
736
828
  export type GithubStatus = {
737
829
  hasInstallation: boolean;
738
830
  hasUserCredential: boolean;
@@ -3099,6 +3191,204 @@ export type GithubReposResponses = {
3099
3191
  }>;
3100
3192
  };
3101
3193
  export type GithubReposResponse = GithubReposResponses[keyof GithubReposResponses];
3194
+ export type GoogleStatusData = {
3195
+ body?: never;
3196
+ path?: never;
3197
+ query?: {
3198
+ /**
3199
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
3200
+ */
3201
+ scope?: "user";
3202
+ };
3203
+ url: "/api/google/status";
3204
+ };
3205
+ export type GoogleStatusErrors = {
3206
+ /**
3207
+ * Unauthorized
3208
+ */
3209
+ 401: {
3210
+ error: string;
3211
+ };
3212
+ /**
3213
+ * Forbidden
3214
+ */
3215
+ 403: {
3216
+ error: string;
3217
+ };
3218
+ };
3219
+ export type GoogleStatusError = GoogleStatusErrors[keyof GoogleStatusErrors];
3220
+ export type GoogleStatusResponses = {
3221
+ /**
3222
+ * Google Workspace configuration status
3223
+ */
3224
+ 200: GoogleWorkspaceStatus;
3225
+ };
3226
+ export type GoogleStatusResponse = GoogleStatusResponses[keyof GoogleStatusResponses];
3227
+ export type GoogleConfigDeleteData = {
3228
+ body?: never;
3229
+ path?: never;
3230
+ query?: {
3231
+ /**
3232
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
3233
+ */
3234
+ scope?: "user";
3235
+ };
3236
+ url: "/api/google/config";
3237
+ };
3238
+ export type GoogleConfigDeleteErrors = {
3239
+ /**
3240
+ * Unauthorized
3241
+ */
3242
+ 401: {
3243
+ error: string;
3244
+ };
3245
+ /**
3246
+ * Forbidden
3247
+ */
3248
+ 403: {
3249
+ error: string;
3250
+ };
3251
+ };
3252
+ export type GoogleConfigDeleteError = GoogleConfigDeleteErrors[keyof GoogleConfigDeleteErrors];
3253
+ export type GoogleConfigDeleteResponses = {
3254
+ /**
3255
+ * Removed
3256
+ */
3257
+ 204: void;
3258
+ };
3259
+ export type GoogleConfigDeleteResponse = GoogleConfigDeleteResponses[keyof GoogleConfigDeleteResponses];
3260
+ export type GoogleConfigSaveData = {
3261
+ body?: {
3262
+ clientId: string;
3263
+ clientSecret: string;
3264
+ scopes?: Array<string>;
3265
+ };
3266
+ path?: never;
3267
+ query?: {
3268
+ /**
3269
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
3270
+ */
3271
+ scope?: "user";
3272
+ };
3273
+ url: "/api/google/config";
3274
+ };
3275
+ export type GoogleConfigSaveErrors = {
3276
+ /**
3277
+ * Bad request
3278
+ */
3279
+ 400: {
3280
+ error: string;
3281
+ };
3282
+ /**
3283
+ * Unauthorized
3284
+ */
3285
+ 401: {
3286
+ error: string;
3287
+ };
3288
+ /**
3289
+ * Forbidden
3290
+ */
3291
+ 403: {
3292
+ error: string;
3293
+ };
3294
+ };
3295
+ export type GoogleConfigSaveError = GoogleConfigSaveErrors[keyof GoogleConfigSaveErrors];
3296
+ export type GoogleConfigSaveResponses = {
3297
+ /**
3298
+ * Updated Google Workspace configuration status
3299
+ */
3300
+ 200: GoogleWorkspaceStatus;
3301
+ };
3302
+ export type GoogleConfigSaveResponse = GoogleConfigSaveResponses[keyof GoogleConfigSaveResponses];
3303
+ export type GoogleDisconnectData = {
3304
+ body?: never;
3305
+ path: {
3306
+ vaultId: string;
3307
+ };
3308
+ query?: {
3309
+ /**
3310
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
3311
+ */
3312
+ scope?: "user";
3313
+ };
3314
+ url: "/api/google/vaults/{vaultId}/connect";
3315
+ };
3316
+ export type GoogleDisconnectErrors = {
3317
+ /**
3318
+ * Unauthorized
3319
+ */
3320
+ 401: {
3321
+ error: string;
3322
+ };
3323
+ /**
3324
+ * Forbidden
3325
+ */
3326
+ 403: {
3327
+ error: string;
3328
+ };
3329
+ /**
3330
+ * Not found
3331
+ */
3332
+ 404: {
3333
+ error: string;
3334
+ };
3335
+ };
3336
+ export type GoogleDisconnectError = GoogleDisconnectErrors[keyof GoogleDisconnectErrors];
3337
+ export type GoogleDisconnectResponses = {
3338
+ /**
3339
+ * Removed
3340
+ */
3341
+ 204: void;
3342
+ };
3343
+ export type GoogleDisconnectResponse = GoogleDisconnectResponses[keyof GoogleDisconnectResponses];
3344
+ export type GoogleConnectData = {
3345
+ body?: never;
3346
+ path: {
3347
+ vaultId: string;
3348
+ };
3349
+ query?: {
3350
+ /**
3351
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
3352
+ */
3353
+ scope?: "user";
3354
+ returnTo?: string;
3355
+ };
3356
+ url: "/api/google/vaults/{vaultId}/connect";
3357
+ };
3358
+ export type GoogleConnectErrors = {
3359
+ /**
3360
+ * Bad request
3361
+ */
3362
+ 400: {
3363
+ error: string;
3364
+ };
3365
+ /**
3366
+ * Unauthorized
3367
+ */
3368
+ 401: {
3369
+ error: string;
3370
+ };
3371
+ /**
3372
+ * Forbidden
3373
+ */
3374
+ 403: {
3375
+ error: string;
3376
+ };
3377
+ /**
3378
+ * Not found
3379
+ */
3380
+ 404: {
3381
+ error: string;
3382
+ };
3383
+ };
3384
+ export type GoogleConnectError = GoogleConnectErrors[keyof GoogleConnectErrors];
3385
+ export type GoogleConnectResponses = {
3386
+ /**
3387
+ * Authorization URL for the user to visit
3388
+ */
3389
+ 200: GoogleWorkspaceOAuthStartResult;
3390
+ };
3391
+ export type GoogleConnectResponse = GoogleConnectResponses[keyof GoogleConnectResponses];
3102
3392
  export type McpListData = {
3103
3393
  body?: never;
3104
3394
  path?: never;
@@ -3140,12 +3430,16 @@ export type McpCreateData = {
3140
3430
  name: string;
3141
3431
  description?: string;
3142
3432
  icon?: string | null;
3143
- mcpServerUrl: string;
3433
+ mcpServerUrl?: string | null;
3144
3434
  docUrl?: string | null;
3145
3435
  type?: "remote" | "local";
3146
3436
  transport?: "streamable-http" | "sse" | "stdio";
3147
3437
  command?: string | null;
3148
3438
  args?: Array<string>;
3439
+ env?: {
3440
+ [key: string]: string;
3441
+ };
3442
+ requiredCredentials?: Array<RequiredCredential>;
3149
3443
  version?: string | null;
3150
3444
  repository?: Repository | null;
3151
3445
  tools?: Array<string>;
@@ -3330,6 +3624,10 @@ export type McpUpdateData = {
3330
3624
  transport?: "streamable-http" | "sse" | "stdio";
3331
3625
  command?: string | null;
3332
3626
  args?: Array<string>;
3627
+ env?: {
3628
+ [key: string]: string;
3629
+ };
3630
+ requiredCredentials?: Array<RequiredCredential>;
3333
3631
  version?: string | null;
3334
3632
  repository?: Repository | null;
3335
3633
  tools?: Array<string>;
@@ -5233,6 +5531,57 @@ export type ProjectAgentRemoveResponses = {
5233
5531
  200: ProjectAgent;
5234
5532
  };
5235
5533
  export type ProjectAgentRemoveResponse = ProjectAgentRemoveResponses[keyof ProjectAgentRemoveResponses];
5534
+ export type ProjectAgentUpdateData = {
5535
+ body?: {
5536
+ agentVersionId?: string | null;
5537
+ type?: "primary" | "subagent" | "all";
5538
+ };
5539
+ path: {
5540
+ id: string;
5541
+ agentId: string;
5542
+ };
5543
+ query?: {
5544
+ /**
5545
+ * Pass 'user' to scope the operation to the authenticated user's private namespace. Omit for the org-wide namespace.
5546
+ */
5547
+ scope?: "user";
5548
+ };
5549
+ url: "/api/projects/{id}/agents/{agentId}";
5550
+ };
5551
+ export type ProjectAgentUpdateErrors = {
5552
+ /**
5553
+ * Bad request
5554
+ */
5555
+ 400: {
5556
+ error: string;
5557
+ };
5558
+ /**
5559
+ * Unauthorized
5560
+ */
5561
+ 401: {
5562
+ error: string;
5563
+ };
5564
+ /**
5565
+ * Forbidden
5566
+ */
5567
+ 403: {
5568
+ error: string;
5569
+ };
5570
+ /**
5571
+ * Not found
5572
+ */
5573
+ 404: {
5574
+ error: string;
5575
+ };
5576
+ };
5577
+ export type ProjectAgentUpdateError = ProjectAgentUpdateErrors[keyof ProjectAgentUpdateErrors];
5578
+ export type ProjectAgentUpdateResponses = {
5579
+ /**
5580
+ * Updated agent membership
5581
+ */
5582
+ 200: ProjectAgent;
5583
+ };
5584
+ export type ProjectAgentUpdateResponse = ProjectAgentUpdateResponses[keyof ProjectAgentUpdateResponses];
5236
5585
  export type ProjectFileStoreListData = {
5237
5586
  body?: never;
5238
5587
  path: {
@@ -7292,6 +7641,40 @@ export type SkillVersionArchiveResponses = {
7292
7641
  200: SkillVersion;
7293
7642
  };
7294
7643
  export type SkillVersionArchiveResponse = SkillVersionArchiveResponses[keyof SkillVersionArchiveResponses];
7644
+ export type TopologyGetData = {
7645
+ body?: never;
7646
+ path?: never;
7647
+ query?: never;
7648
+ url: "/api/topology";
7649
+ };
7650
+ export type TopologyGetErrors = {
7651
+ /**
7652
+ * Bad request
7653
+ */
7654
+ 400: {
7655
+ error: string;
7656
+ };
7657
+ /**
7658
+ * Unauthorized
7659
+ */
7660
+ 401: {
7661
+ error: string;
7662
+ };
7663
+ /**
7664
+ * Forbidden
7665
+ */
7666
+ 403: {
7667
+ error: string;
7668
+ };
7669
+ };
7670
+ export type TopologyGetError = TopologyGetErrors[keyof TopologyGetErrors];
7671
+ export type TopologyGetResponses = {
7672
+ /**
7673
+ * Agent-stack topology
7674
+ */
7675
+ 200: Topology;
7676
+ };
7677
+ export type TopologyGetResponse = TopologyGetResponses[keyof TopologyGetResponses];
7295
7678
  export type TriggerListData = {
7296
7679
  body?: never;
7297
7680
  path?: never;