@renai-labs/sdk 0.1.19 → 0.1.20

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.
@@ -87,7 +87,7 @@ export class Agent extends HeyApiClient {
87
87
  });
88
88
  }
89
89
  /**
90
- * Search agents across user, org, and registry scopes
90
+ * Search agents across private, org, and published tiers
91
91
  */
92
92
  search(options) {
93
93
  return (options?.client ?? this.client).post({
@@ -149,16 +149,12 @@ export class Agent extends HeyApiClient {
149
149
  });
150
150
  }
151
151
  /**
152
- * Copy a private agent into org-wide scope, cloning its private dependencies
152
+ * Promote a private agent to org scope in place, cascading to its private dependencies
153
153
  */
154
- copyToOrg(options) {
154
+ promote(options) {
155
155
  return (options.client ?? this.client).post({
156
- url: "/api/agents/{id}/copy-to-org",
156
+ url: "/api/agents/{id}/promote",
157
157
  ...options,
158
- headers: {
159
- "Content-Type": "application/json",
160
- ...options.headers,
161
- },
162
158
  });
163
159
  }
164
160
  /**
@@ -211,6 +207,19 @@ export class Blueprint extends HeyApiClient {
211
207
  },
212
208
  });
213
209
  }
210
+ /**
211
+ * Create or update a blueprint from a raw Spec
212
+ */
213
+ push(options) {
214
+ return (options?.client ?? this.client).post({
215
+ url: "/api/blueprints/push",
216
+ ...options,
217
+ headers: {
218
+ "Content-Type": "application/json",
219
+ ...options?.headers,
220
+ },
221
+ });
222
+ }
214
223
  /**
215
224
  * Install a blueprint into a pod
216
225
  */
@@ -294,6 +303,17 @@ export class Billing extends HeyApiClient {
294
303
  ...options,
295
304
  });
296
305
  }
306
+ /**
307
+ * Get organization-wide credit usage
308
+ *
309
+ * Total Ren credits consumed across the organization over a bounded time range, broken down by a chosen dimension (user, member, agent, model, session, project, pod, or source) with a per-day trend. Requires an explicit `start`/`end` range (max 92 days). Served from the local hourly usage rollup; values may lag live spend by up to roughly one hour plus a meter cycle.
310
+ */
311
+ usage(options) {
312
+ return (options.client ?? this.client).get({
313
+ url: "/api/billing/usage",
314
+ ...options,
315
+ });
316
+ }
297
317
  /**
298
318
  * List invoices for the organization
299
319
  */
@@ -304,26 +324,48 @@ export class Billing extends HeyApiClient {
304
324
  });
305
325
  }
306
326
  /**
307
- * Daily credit usage
327
+ * Get a payment URL for an invoice
308
328
  */
309
- dailyUsage(options) {
329
+ invoicePaymentUrl(options) {
330
+ return (options.client ?? this.client).get({ url: "/api/billing/invoice-payment-url", ...options });
331
+ }
332
+ /**
333
+ * List available subscription plans
334
+ */
335
+ plans(options) {
310
336
  return (options?.client ?? this.client).get({
311
- url: "/api/billing/daily-usage",
337
+ url: "/api/billing/plans",
312
338
  ...options,
313
339
  });
314
340
  }
315
341
  /**
316
- * Get a payment URL for an invoice
342
+ * Start a subscription-plan checkout
317
343
  */
318
- invoicePaymentUrl(options) {
319
- return (options.client ?? this.client).get({ url: "/api/billing/invoice-payment-url", ...options });
344
+ subscribe(options) {
345
+ return (options?.client ?? this.client).post({
346
+ url: "/api/billing/subscribe",
347
+ ...options,
348
+ headers: {
349
+ "Content-Type": "application/json",
350
+ ...options?.headers,
351
+ },
352
+ });
320
353
  }
321
354
  /**
322
- * Change subscription plan
355
+ * Get a customer-portal URL to manage the plan
323
356
  */
324
- updatePlan(options) {
357
+ portal(options) {
358
+ return (options?.client ?? this.client).get({
359
+ url: "/api/billing/portal",
360
+ ...options,
361
+ });
362
+ }
363
+ /**
364
+ * Upgrade or downgrade the current subscription plan
365
+ */
366
+ changePlan(options) {
325
367
  return (options?.client ?? this.client).post({
326
- url: "/api/billing/plan",
368
+ url: "/api/billing/change-plan",
327
369
  ...options,
328
370
  headers: {
329
371
  "Content-Type": "application/json",
@@ -331,6 +373,15 @@ export class Billing extends HeyApiClient {
331
373
  },
332
374
  });
333
375
  }
376
+ /**
377
+ * Cancel the subscription at the next renewal
378
+ */
379
+ cancel(options) {
380
+ return (options?.client ?? this.client).post({
381
+ url: "/api/billing/cancel",
382
+ ...options,
383
+ });
384
+ }
334
385
  }
335
386
  export class Dashboard extends HeyApiClient {
336
387
  /**
@@ -515,6 +566,17 @@ export class FileStore extends HeyApiClient {
515
566
  return (this._files ??= new Files({ client: this.client }));
516
567
  }
517
568
  }
569
+ export class Invitation extends HeyApiClient {
570
+ /**
571
+ * Preview an organization invitation
572
+ */
573
+ preview(options) {
574
+ return (options.client ?? this.client).get({
575
+ url: "/api/invitations/{id}/preview",
576
+ ...options,
577
+ });
578
+ }
579
+ }
518
580
  export class Mappings extends HeyApiClient {
519
581
  /**
520
582
  * List GitHub repo→project channel mappings for the org
@@ -707,7 +769,7 @@ export class Mcp extends HeyApiClient {
707
769
  });
708
770
  }
709
771
  /**
710
- * Search MCPs across user, org, and registry scopes
772
+ * Search MCPs across private, org, and published tiers
711
773
  */
712
774
  search(options) {
713
775
  return (options?.client ?? this.client).post({
@@ -769,16 +831,12 @@ export class Mcp extends HeyApiClient {
769
831
  });
770
832
  }
771
833
  /**
772
- * Copy a private MCP into org-wide scope
834
+ * Promote a private MCP to org scope in place
773
835
  */
774
- copyToOrg(options) {
836
+ promote(options) {
775
837
  return (options.client ?? this.client).post({
776
- url: "/api/mcps/{id}/copy-to-org",
838
+ url: "/api/mcps/{id}/promote",
777
839
  ...options,
778
- headers: {
779
- "Content-Type": "application/json",
780
- ...options.headers,
781
- },
782
840
  });
783
841
  }
784
842
  /**
@@ -818,6 +876,36 @@ export class Me extends HeyApiClient {
818
876
  ...options,
819
877
  });
820
878
  }
879
+ /**
880
+ * Update the active member persona
881
+ *
882
+ * Sets the authenticated user's persona for their active organization membership.
883
+ */
884
+ updatePersona(options) {
885
+ return (options?.client ?? this.client).patch({
886
+ url: "/api/me/persona",
887
+ ...options,
888
+ headers: {
889
+ "Content-Type": "application/json",
890
+ ...options?.headers,
891
+ },
892
+ });
893
+ }
894
+ /**
895
+ * Mark member onboarding complete
896
+ *
897
+ * Stamps the authenticated member as onboarded for their active organization.
898
+ */
899
+ completeOnboarding(options) {
900
+ return (options?.client ?? this.client).post({
901
+ url: "/api/me/onboarding",
902
+ ...options,
903
+ headers: {
904
+ "Content-Type": "application/json",
905
+ ...options?.headers,
906
+ },
907
+ });
908
+ }
821
909
  }
822
910
  export class Files2 extends HeyApiClient {
823
911
  /**
@@ -960,6 +1048,46 @@ export class Onboarding extends HeyApiClient {
960
1048
  return (options?.client ?? this.client).post({ url: "/api/onboarding/setup-personal-org", ...options });
961
1049
  }
962
1050
  }
1051
+ export class Org extends HeyApiClient {
1052
+ /**
1053
+ * Get organization settings
1054
+ */
1055
+ get(options) {
1056
+ return (options?.client ?? this.client).get({
1057
+ url: "/api/org",
1058
+ ...options,
1059
+ });
1060
+ }
1061
+ /**
1062
+ * Update organization settings
1063
+ */
1064
+ update(options) {
1065
+ return (options?.client ?? this.client).patch({
1066
+ url: "/api/org",
1067
+ ...options,
1068
+ headers: {
1069
+ "Content-Type": "application/json",
1070
+ ...options?.headers,
1071
+ },
1072
+ });
1073
+ }
1074
+ }
1075
+ export class OrganizationLogo extends HeyApiClient {
1076
+ /**
1077
+ * Upload an organization logo
1078
+ */
1079
+ upload(options) {
1080
+ return (options.client ?? this.client).post({
1081
+ ...formDataBodySerializer,
1082
+ url: "/api/organization-logos",
1083
+ ...options,
1084
+ headers: {
1085
+ "Content-Type": null,
1086
+ ...options.headers,
1087
+ },
1088
+ });
1089
+ }
1090
+ }
963
1091
  export class Pat extends HeyApiClient {
964
1092
  /**
965
1093
  * List personal access tokens
@@ -1139,6 +1267,17 @@ export class Pod extends HeyApiClient {
1139
1267
  },
1140
1268
  });
1141
1269
  }
1270
+ /**
1271
+ * Get total credit usage for a pod
1272
+ *
1273
+ * Total Ren credits consumed across the whole pod, served from the local hourly usage rollup.
1274
+ */
1275
+ usage(options) {
1276
+ return (options.client ?? this.client).get({
1277
+ url: "/api/pods/{id}/usage",
1278
+ ...options,
1279
+ });
1280
+ }
1142
1281
  /**
1143
1282
  * Archive a pod
1144
1283
  */
@@ -1261,6 +1400,72 @@ export class MemoryStore2 extends HeyApiClient {
1261
1400
  return (options.client ?? this.client).delete({ url: "/api/projects/{id}/memory-stores/{memoryStoreId}", ...options });
1262
1401
  }
1263
1402
  }
1403
+ export class Skill extends HeyApiClient {
1404
+ /**
1405
+ * List skills attached to a project
1406
+ */
1407
+ list(options) {
1408
+ return (options.client ?? this.client).get({
1409
+ url: "/api/projects/{id}/skills",
1410
+ ...options,
1411
+ });
1412
+ }
1413
+ /**
1414
+ * Attach a skill to a project
1415
+ */
1416
+ add(options) {
1417
+ return (options.client ?? this.client).post({
1418
+ url: "/api/projects/{id}/skills",
1419
+ ...options,
1420
+ headers: {
1421
+ "Content-Type": "application/json",
1422
+ ...options.headers,
1423
+ },
1424
+ });
1425
+ }
1426
+ /**
1427
+ * Detach a skill from a project
1428
+ */
1429
+ remove(options) {
1430
+ return (options.client ?? this.client).delete({
1431
+ url: "/api/projects/{id}/skills/{skillId}",
1432
+ ...options,
1433
+ });
1434
+ }
1435
+ }
1436
+ export class Mcp2 extends HeyApiClient {
1437
+ /**
1438
+ * List MCPs attached to a project
1439
+ */
1440
+ list(options) {
1441
+ return (options.client ?? this.client).get({
1442
+ url: "/api/projects/{id}/mcps",
1443
+ ...options,
1444
+ });
1445
+ }
1446
+ /**
1447
+ * Attach an MCP to a project
1448
+ */
1449
+ add(options) {
1450
+ return (options.client ?? this.client).post({
1451
+ url: "/api/projects/{id}/mcps",
1452
+ ...options,
1453
+ headers: {
1454
+ "Content-Type": "application/json",
1455
+ ...options.headers,
1456
+ },
1457
+ });
1458
+ }
1459
+ /**
1460
+ * Detach an MCP from a project
1461
+ */
1462
+ remove(options) {
1463
+ return (options.client ?? this.client).delete({
1464
+ url: "/api/projects/{id}/mcps/{mcpId}",
1465
+ ...options,
1466
+ });
1467
+ }
1468
+ }
1264
1469
  export class Project extends HeyApiClient {
1265
1470
  /**
1266
1471
  * List projects
@@ -1306,6 +1511,17 @@ export class Project extends HeyApiClient {
1306
1511
  },
1307
1512
  });
1308
1513
  }
1514
+ /**
1515
+ * Get a project's credit usage
1516
+ *
1517
+ * Ren credits consumed within the project, with a per-day trend, a breakdown by usage source and operation, and an optional grouped breakdown (e.g. `groupBy=session` for per-session costs). `start`/`end` bound the range (max 92 days); omit both for all-time. Served from the local hourly usage rollup.
1518
+ */
1519
+ usage(options) {
1520
+ return (options.client ?? this.client).get({
1521
+ url: "/api/projects/{id}/usage",
1522
+ ...options,
1523
+ });
1524
+ }
1309
1525
  /**
1310
1526
  * Archive a project
1311
1527
  */
@@ -1327,6 +1543,14 @@ export class Project extends HeyApiClient {
1327
1543
  get memoryStore() {
1328
1544
  return (this._memoryStore ??= new MemoryStore2({ client: this.client }));
1329
1545
  }
1546
+ _skill;
1547
+ get skill() {
1548
+ return (this._skill ??= new Skill({ client: this.client }));
1549
+ }
1550
+ _mcp;
1551
+ get mcp() {
1552
+ return (this._mcp ??= new Mcp2({ client: this.client }));
1553
+ }
1330
1554
  }
1331
1555
  export class Publisher extends HeyApiClient {
1332
1556
  /**
@@ -1537,6 +1761,8 @@ export class Session extends HeyApiClient {
1537
1761
  }
1538
1762
  /**
1539
1763
  * Create a session
1764
+ *
1765
+ * Starts an async, sandbox-warming session creation job and returns a jobId to poll via session.createStatus.
1540
1766
  */
1541
1767
  create(options) {
1542
1768
  return (options?.client ?? this.client).post({
@@ -1548,6 +1774,15 @@ export class Session extends HeyApiClient {
1548
1774
  },
1549
1775
  });
1550
1776
  }
1777
+ /**
1778
+ * Poll a session creation job
1779
+ */
1780
+ createStatus(options) {
1781
+ return (options.client ?? this.client).get({
1782
+ url: "/api/sessions/jobs/{jobId}",
1783
+ ...options,
1784
+ });
1785
+ }
1551
1786
  /**
1552
1787
  * Get a session
1553
1788
  */
@@ -1581,6 +1816,17 @@ export class Session extends HeyApiClient {
1581
1816
  ...options,
1582
1817
  });
1583
1818
  }
1819
+ /**
1820
+ * Get a session's credit usage
1821
+ *
1822
+ * Total Ren credits consumed by this session and all of its child/subagent sessions, with a breakdown by usage source and operation. Served from the local hourly usage rollup; the value may lag live spend by up to roughly one hour plus a meter cycle.
1823
+ */
1824
+ usage(options) {
1825
+ return (options.client ?? this.client).get({
1826
+ url: "/api/sessions/{id}/usage",
1827
+ ...options,
1828
+ });
1829
+ }
1584
1830
  /**
1585
1831
  * Compute MCP and skill credential requirements for a session
1586
1832
  */
@@ -1661,7 +1907,7 @@ export class Version2 extends HeyApiClient {
1661
1907
  });
1662
1908
  }
1663
1909
  }
1664
- export class Skill extends HeyApiClient {
1910
+ export class Skill2 extends HeyApiClient {
1665
1911
  /**
1666
1912
  * List skills
1667
1913
  */
@@ -1686,7 +1932,7 @@ export class Skill extends HeyApiClient {
1686
1932
  });
1687
1933
  }
1688
1934
  /**
1689
- * Search skills across user, org, and registry scopes
1935
+ * Search skills across private, org, and published tiers
1690
1936
  */
1691
1937
  search(options) {
1692
1938
  return (options?.client ?? this.client).post({
@@ -1783,16 +2029,12 @@ export class Skill extends HeyApiClient {
1783
2029
  });
1784
2030
  }
1785
2031
  /**
1786
- * Copy a private skill into org-wide scope
2032
+ * Promote a private skill to org scope in place
1787
2033
  */
1788
- copyToOrg(options) {
2034
+ promote(options) {
1789
2035
  return (options.client ?? this.client).post({
1790
- url: "/api/skills/{id}/copy-to-org",
2036
+ url: "/api/skills/{id}/promote",
1791
2037
  ...options,
1792
- headers: {
1793
- "Content-Type": "application/json",
1794
- ...options.headers,
1795
- },
1796
2038
  });
1797
2039
  }
1798
2040
  _version;
@@ -1952,6 +2194,14 @@ export class WebhookTrigger extends HeyApiClient {
1952
2194
  });
1953
2195
  }
1954
2196
  }
2197
+ export class Onboarding2 extends HeyApiClient {
2198
+ /**
2199
+ * Resolve the next onboarding step after Sign in with Slack
2200
+ */
2201
+ resolve(options) {
2202
+ return (options?.client ?? this.client).get({ url: "/api/slack/onboarding/resolve", ...options });
2203
+ }
2204
+ }
1955
2205
  export class Channel extends HeyApiClient {
1956
2206
  /**
1957
2207
  * List Slack channels with their current project mapping
@@ -2013,6 +2263,10 @@ export class Slack extends HeyApiClient {
2013
2263
  ...options,
2014
2264
  });
2015
2265
  }
2266
+ _onboarding;
2267
+ get onboarding() {
2268
+ return (this._onboarding ??= new Onboarding2({ client: this.client }));
2269
+ }
2016
2270
  _channel;
2017
2271
  get channel() {
2018
2272
  return (this._channel ??= new Channel({ client: this.client }));
@@ -2141,7 +2395,7 @@ export class Mappings2 extends HeyApiClient {
2141
2395
  });
2142
2396
  }
2143
2397
  /**
2144
- * Map a Linear project to a Ren project
2398
+ * Map a Linear project to a Ren project (idempotent upsert)
2145
2399
  */
2146
2400
  create(options) {
2147
2401
  return (options?.client ?? this.client).post({
@@ -2350,6 +2604,19 @@ export class Credential extends HeyApiClient {
2350
2604
  ...options,
2351
2605
  });
2352
2606
  }
2607
+ /**
2608
+ * Copy or move a credential to another vault
2609
+ */
2610
+ transfer(options) {
2611
+ return (options.client ?? this.client).post({
2612
+ url: "/api/vaults/{vaultId}/credentials/{id}/transfer",
2613
+ ...options,
2614
+ headers: {
2615
+ "Content-Type": "application/json",
2616
+ ...options.headers,
2617
+ },
2618
+ });
2619
+ }
2353
2620
  _oauth;
2354
2621
  get oauth() {
2355
2622
  return (this._oauth ??= new Oauth2({ client: this.client }));
@@ -2375,7 +2642,7 @@ export class Agent3 extends HeyApiClient {
2375
2642
  });
2376
2643
  }
2377
2644
  }
2378
- export class Skill2 extends HeyApiClient {
2645
+ export class Skill3 extends HeyApiClient {
2379
2646
  /**
2380
2647
  * List registry skills
2381
2648
  */
@@ -2395,7 +2662,7 @@ export class Skill2 extends HeyApiClient {
2395
2662
  });
2396
2663
  }
2397
2664
  }
2398
- export class Mcp2 extends HeyApiClient {
2665
+ export class Mcp3 extends HeyApiClient {
2399
2666
  /**
2400
2667
  * List registry MCPs
2401
2668
  */
@@ -2423,6 +2690,14 @@ export class Blueprint2 extends HeyApiClient {
2423
2690
  return (options.client ?? this.client).get({ url: "/api/registry/blueprints/{slug}", ...options });
2424
2691
  }
2425
2692
  }
2693
+ export class Publisher2 extends HeyApiClient {
2694
+ /**
2695
+ * Get a registry publisher by slug
2696
+ */
2697
+ get(options) {
2698
+ return (options.client ?? this.client).get({ url: "/api/registry/publishers/{slug}", ...options });
2699
+ }
2700
+ }
2426
2701
  export class Files4 extends HeyApiClient {
2427
2702
  /**
2428
2703
  * Presign a download URL for a public replay's pod-volume file
@@ -2505,16 +2780,20 @@ export class Registry extends HeyApiClient {
2505
2780
  }
2506
2781
  _skill;
2507
2782
  get skill() {
2508
- return (this._skill ??= new Skill2({ client: this.client }));
2783
+ return (this._skill ??= new Skill3({ client: this.client }));
2509
2784
  }
2510
2785
  _mcp;
2511
2786
  get mcp() {
2512
- return (this._mcp ??= new Mcp2({ client: this.client }));
2787
+ return (this._mcp ??= new Mcp3({ client: this.client }));
2513
2788
  }
2514
2789
  _blueprint;
2515
2790
  get blueprint() {
2516
2791
  return (this._blueprint ??= new Blueprint2({ client: this.client }));
2517
2792
  }
2793
+ _publisher;
2794
+ get publisher() {
2795
+ return (this._publisher ??= new Publisher2({ client: this.client }));
2796
+ }
2518
2797
  _replay;
2519
2798
  get replay() {
2520
2799
  return (this._replay ??= new Replay2({ client: this.client }));
@@ -2554,6 +2833,10 @@ export class RenClient extends HeyApiClient {
2554
2833
  get fileStore() {
2555
2834
  return (this._fileStore ??= new FileStore({ client: this.client }));
2556
2835
  }
2836
+ _invitation;
2837
+ get invitation() {
2838
+ return (this._invitation ??= new Invitation({ client: this.client }));
2839
+ }
2557
2840
  _github;
2558
2841
  get github() {
2559
2842
  return (this._github ??= new Github({ client: this.client }));
@@ -2582,6 +2865,14 @@ export class RenClient extends HeyApiClient {
2582
2865
  get onboarding() {
2583
2866
  return (this._onboarding ??= new Onboarding({ client: this.client }));
2584
2867
  }
2868
+ _org;
2869
+ get org() {
2870
+ return (this._org ??= new Org({ client: this.client }));
2871
+ }
2872
+ _organizationLogo;
2873
+ get organizationLogo() {
2874
+ return (this._organizationLogo ??= new OrganizationLogo({ client: this.client }));
2875
+ }
2585
2876
  _pat;
2586
2877
  get pat() {
2587
2878
  return (this._pat ??= new Pat({ client: this.client }));
@@ -2608,7 +2899,7 @@ export class RenClient extends HeyApiClient {
2608
2899
  }
2609
2900
  _skill;
2610
2901
  get skill() {
2611
- return (this._skill ??= new Skill({ client: this.client }));
2902
+ return (this._skill ??= new Skill2({ client: this.client }));
2612
2903
  }
2613
2904
  _topology;
2614
2905
  get topology() {