@renai-labs/sdk 0.1.21 → 0.1.23

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.
@@ -29,7 +29,7 @@ const createQueryKey = (id, options, infinite, tags) => {
29
29
  };
30
30
  export const agentListQueryKey = (options) => createQueryKey("agentList", options);
31
31
  /**
32
- * List agents
32
+ * List and search agents
33
33
  */
34
34
  export const agentListOptions = (options) => queryOptions({
35
35
  queryFn: async ({ queryKey, signal }) => {
@@ -73,7 +73,7 @@ const createInfiniteParams = (queryKey, page) => {
73
73
  };
74
74
  export const agentListInfiniteQueryKey = (options) => createQueryKey("agentList", options, true);
75
75
  /**
76
- * List agents
76
+ * List and search agents
77
77
  */
78
78
  export const agentListInfiniteOptions = (options) => infiniteQueryOptions(
79
79
  // @ts-ignore
@@ -114,41 +114,9 @@ export const agentCreateMutation = (options) => {
114
114
  };
115
115
  return mutationOptions;
116
116
  };
117
- /**
118
- * Search agents across private, org, and published tiers
119
- */
120
- export const agentSearchMutation = (options) => {
121
- const mutationOptions = {
122
- mutationFn: async (fnOptions) => {
123
- const { data } = await RenClient.__registry.get().agent.search({
124
- ...options,
125
- ...fnOptions,
126
- throwOnError: true,
127
- });
128
- return data;
129
- },
130
- };
131
- return mutationOptions;
132
- };
133
- export const agentGetBySlugQueryKey = (options) => createQueryKey("agentGetBySlug", options);
134
- /**
135
- * Get an agent by slug
136
- */
137
- export const agentGetBySlugOptions = (options) => queryOptions({
138
- queryFn: async ({ queryKey, signal }) => {
139
- const { data } = await RenClient.__registry.get().agent.getBySlug({
140
- ...options,
141
- ...queryKey[0],
142
- signal,
143
- throwOnError: true,
144
- });
145
- return data;
146
- },
147
- queryKey: agentGetBySlugQueryKey(options),
148
- });
149
117
  export const agentGetQueryKey = (options) => createQueryKey("agentGet", options);
150
118
  /**
151
- * Get an agent
119
+ * Get an agent by ID or slug
152
120
  */
153
121
  export const agentGetOptions = (options) => queryOptions({
154
122
  queryFn: async ({ queryKey, signal }) => {
@@ -335,6 +303,8 @@ export const agentVersionGetOptions = (options) => queryOptions({
335
303
  });
336
304
  /**
337
305
  * Archive an agent version
306
+ *
307
+ * Archiving the latest version repoints agents tracking latest to the next non-archived version. The response reports the blast radius (projectCount/podCount) of the pinned and tracking-latest placements affected.
338
308
  */
339
309
  export const agentVersionArchiveMutation = (options) => {
340
310
  const mutationOptions = {
@@ -861,6 +831,65 @@ export const environmentUpdateMutation = (options) => {
861
831
  };
862
832
  return mutationOptions;
863
833
  };
834
+ /**
835
+ * Start a custom template build for an environment
836
+ */
837
+ export const environmentBuildStartMutation = (options) => {
838
+ const mutationOptions = {
839
+ mutationFn: async (fnOptions) => {
840
+ const { data } = await RenClient.__registry.get().environment.build.start({
841
+ ...options,
842
+ ...fnOptions,
843
+ throwOnError: true,
844
+ });
845
+ return data;
846
+ },
847
+ };
848
+ return mutationOptions;
849
+ };
850
+ export const environmentBuildListQueryKey = (options) => createQueryKey("environmentBuildList", options);
851
+ /**
852
+ * List an environment's builds
853
+ */
854
+ export const environmentBuildListOptions = (options) => queryOptions({
855
+ queryFn: async ({ queryKey, signal }) => {
856
+ const { data } = await RenClient.__registry.get().environment.build.list({
857
+ ...options,
858
+ ...queryKey[0],
859
+ signal,
860
+ throwOnError: true,
861
+ });
862
+ return data;
863
+ },
864
+ queryKey: environmentBuildListQueryKey(options),
865
+ });
866
+ export const environmentBuildListInfiniteQueryKey = (options) => createQueryKey("environmentBuildList", options, true);
867
+ /**
868
+ * List an environment's builds
869
+ */
870
+ export const environmentBuildListInfiniteOptions = (options) => infiniteQueryOptions(
871
+ // @ts-ignore
872
+ {
873
+ queryFn: async ({ pageParam, queryKey, signal }) => {
874
+ // @ts-ignore
875
+ const page = typeof pageParam === "object"
876
+ ? pageParam
877
+ : {
878
+ query: {
879
+ offset: pageParam,
880
+ },
881
+ };
882
+ const params = createInfiniteParams(queryKey, page);
883
+ const { data } = await RenClient.__registry.get().environment.build.list({
884
+ ...options,
885
+ ...params,
886
+ signal,
887
+ throwOnError: true,
888
+ });
889
+ return data;
890
+ },
891
+ queryKey: environmentBuildListInfiniteQueryKey(options),
892
+ });
864
893
  /**
865
894
  * Archive an environment
866
895
  */
@@ -970,6 +999,8 @@ export const fileStoreUpdateMutation = (options) => {
970
999
  };
971
1000
  /**
972
1001
  * Archive a file store
1002
+ *
1003
+ * Archives the store metadata but keeps every stored object. Bytes remain recoverable until a retention sweep purges stores archived more than 30 days.
973
1004
  */
974
1005
  export const fileStoreArchiveMutation = (options) => {
975
1006
  const mutationOptions = {
@@ -986,6 +1017,8 @@ export const fileStoreArchiveMutation = (options) => {
986
1017
  };
987
1018
  /**
988
1019
  * Delete a file
1020
+ *
1021
+ * Deletes a file from the store. This does not coordinate with live sandbox mounts: a sandbox holding an unflushed write to the same path can re-create the file after this delete lands.
989
1022
  */
990
1023
  export const fileStoreFilesDeleteMutation = (options) => {
991
1024
  const mutationOptions = {
@@ -1003,6 +1036,8 @@ export const fileStoreFilesDeleteMutation = (options) => {
1003
1036
  export const fileStoreFilesListQueryKey = (options) => createQueryKey("fileStoreFilesList", options);
1004
1037
  /**
1005
1038
  * List files in a file store
1039
+ *
1040
+ * Lists finalized files under the given prefix. Reads can be stale relative to a live mount: a sandbox holding an unflushed write to the same path may not have uploaded it yet, and a mount can serve a cached read of a file another writer has since changed (bounded by the mount's cache windows).
1006
1041
  */
1007
1042
  export const fileStoreFilesListOptions = (options) => queryOptions({
1008
1043
  queryFn: async ({ queryKey, signal }) => {
@@ -1019,6 +1054,8 @@ export const fileStoreFilesListOptions = (options) => queryOptions({
1019
1054
  export const fileStoreFilesPresignDownloadQueryKey = (options) => createQueryKey("fileStoreFilesPresignDownload", options);
1020
1055
  /**
1021
1056
  * Get a presigned GET URL for a file
1057
+ *
1058
+ * Returns a presigned GET URL for a file. Content can be stale relative to a live mount: a mount may serve a cached read of a file another writer has changed, and a sandbox's own unflushed write may not be reflected yet (bounded by the mount's cache windows).
1022
1059
  */
1023
1060
  export const fileStoreFilesPresignDownloadOptions = (options) => queryOptions({
1024
1061
  queryFn: async ({ queryKey, signal }) => {
@@ -1034,6 +1071,8 @@ export const fileStoreFilesPresignDownloadOptions = (options) => queryOptions({
1034
1071
  });
1035
1072
  /**
1036
1073
  * Start a presigned upload
1074
+ *
1075
+ * Starts a presigned upload. The returned URL uploads bytes to a private staging area outside the store — the file is invisible to workspaces and absent from the store's file list until finalize promotes it. Returns an uploadId that finalize requires. For small files a tool can call, prefer PUT /:id/files/content.
1037
1076
  */
1038
1077
  export const fileStoreFilesStartUploadMutation = (options) => {
1039
1078
  const mutationOptions = {
@@ -1050,6 +1089,8 @@ export const fileStoreFilesStartUploadMutation = (options) => {
1050
1089
  };
1051
1090
  /**
1052
1091
  * Finalize an upload
1092
+ *
1093
+ * Finalizes a presigned upload identified by uploadId: stats the staged object, enforces the 50 MiB ceiling (over-limit objects are rejected and deleted), promotes it onto the store key, and fans the new file out to attached workspaces. Required — an unfinalized upload stays in staging, invisible to workspaces and the file list, and is reaped after 24 hours.
1053
1094
  */
1054
1095
  export const fileStoreFilesFinalizeUploadMutation = (options) => {
1055
1096
  const mutationOptions = {
@@ -1064,6 +1105,24 @@ export const fileStoreFilesFinalizeUploadMutation = (options) => {
1064
1105
  };
1065
1106
  return mutationOptions;
1066
1107
  };
1108
+ /**
1109
+ * Write a small file directly
1110
+ *
1111
+ * Writes the raw request body to `path` in one call (no presign/finalize round-trip), capped at 5 MiB — the write path a tool-caller can use. Same path rules and workspace fan-out as a finalized upload. Use presigned uploads for larger files.
1112
+ */
1113
+ export const fileStoreFilesWriteContentMutation = (options) => {
1114
+ const mutationOptions = {
1115
+ mutationFn: async (fnOptions) => {
1116
+ const { data } = await RenClient.__registry.get().fileStore.files.writeContent({
1117
+ ...options,
1118
+ ...fnOptions,
1119
+ throwOnError: true,
1120
+ });
1121
+ return data;
1122
+ },
1123
+ };
1124
+ return mutationOptions;
1125
+ };
1067
1126
  export const invitationPreviewQueryKey = (options) => createQueryKey("invitationPreview", options);
1068
1127
  /**
1069
1128
  * Preview an organization invitation
@@ -1288,6 +1347,106 @@ export const googleConnectMutation = (options) => {
1288
1347
  };
1289
1348
  return mutationOptions;
1290
1349
  };
1350
+ export const oauthAppListQueryKey = (options) => createQueryKey("oauthAppList", options);
1351
+ /**
1352
+ * List the org's OAuth apps
1353
+ */
1354
+ export const oauthAppListOptions = (options) => queryOptions({
1355
+ queryFn: async ({ queryKey, signal }) => {
1356
+ const { data } = await RenClient.__registry.get().oauthApp.list({
1357
+ ...options,
1358
+ ...queryKey[0],
1359
+ signal,
1360
+ throwOnError: true,
1361
+ });
1362
+ return data;
1363
+ },
1364
+ queryKey: oauthAppListQueryKey(options),
1365
+ });
1366
+ /**
1367
+ * Register an OAuth app the org owns
1368
+ */
1369
+ export const oauthAppCreateMutation = (options) => {
1370
+ const mutationOptions = {
1371
+ mutationFn: async (fnOptions) => {
1372
+ const { data } = await RenClient.__registry.get().oauthApp.create({
1373
+ ...options,
1374
+ ...fnOptions,
1375
+ throwOnError: true,
1376
+ });
1377
+ return data;
1378
+ },
1379
+ };
1380
+ return mutationOptions;
1381
+ };
1382
+ export const oauthAppRedirectUriQueryKey = (options) => createQueryKey("oauthAppRedirectUri", options);
1383
+ /**
1384
+ * The redirect URI to register with an OAuth provider
1385
+ *
1386
+ * Register this exact value as the app's authorized redirect URI before creating it — providers match it byte-for-byte and reject the login otherwise. It is deployment-specific, so read it here rather than assuming a host.
1387
+ */
1388
+ export const oauthAppRedirectUriOptions = (options) => queryOptions({
1389
+ queryFn: async ({ queryKey, signal }) => {
1390
+ const { data } = await RenClient.__registry.get().oauthApp.redirectUri({
1391
+ ...options,
1392
+ ...queryKey[0],
1393
+ signal,
1394
+ throwOnError: true,
1395
+ });
1396
+ return data;
1397
+ },
1398
+ queryKey: oauthAppRedirectUriQueryKey(options),
1399
+ });
1400
+ /**
1401
+ * Archive an OAuth app
1402
+ */
1403
+ export const oauthAppDeleteMutation = (options) => {
1404
+ const mutationOptions = {
1405
+ mutationFn: async (fnOptions) => {
1406
+ const { data } = await RenClient.__registry.get().oauthApp.delete({
1407
+ ...options,
1408
+ ...fnOptions,
1409
+ throwOnError: true,
1410
+ });
1411
+ return data;
1412
+ },
1413
+ };
1414
+ return mutationOptions;
1415
+ };
1416
+ /**
1417
+ * Update an OAuth app
1418
+ *
1419
+ * Renaming an app that MCP servers point at is refused unless ?force=true — they reference it by name.
1420
+ */
1421
+ export const oauthAppUpdateMutation = (options) => {
1422
+ const mutationOptions = {
1423
+ mutationFn: async (fnOptions) => {
1424
+ const { data } = await RenClient.__registry.get().oauthApp.update({
1425
+ ...options,
1426
+ ...fnOptions,
1427
+ throwOnError: true,
1428
+ });
1429
+ return data;
1430
+ },
1431
+ };
1432
+ return mutationOptions;
1433
+ };
1434
+ export const oauthAppUsageQueryKey = (options) => createQueryKey("oauthAppUsage", options);
1435
+ /**
1436
+ * List the MCP servers that point at this OAuth app
1437
+ */
1438
+ export const oauthAppUsageOptions = (options) => queryOptions({
1439
+ queryFn: async ({ queryKey, signal }) => {
1440
+ const { data } = await RenClient.__registry.get().oauthApp.usage({
1441
+ ...options,
1442
+ ...queryKey[0],
1443
+ signal,
1444
+ throwOnError: true,
1445
+ });
1446
+ return data;
1447
+ },
1448
+ queryKey: oauthAppUsageQueryKey(options),
1449
+ });
1291
1450
  export const mcpListQueryKey = (options) => createQueryKey("mcpList", options);
1292
1451
  /**
1293
1452
  * List MCPs
@@ -1491,38 +1650,6 @@ export const mcpUndeprecateMutation = (options) => {
1491
1650
  };
1492
1651
  return mutationOptions;
1493
1652
  };
1494
- /**
1495
- * Start OAuth for an MCP (or confirm it is already connected)
1496
- */
1497
- export const mcpOauthConnectMutation = (options) => {
1498
- const mutationOptions = {
1499
- mutationFn: async (fnOptions) => {
1500
- const { data } = await RenClient.__registry.get().mcp.oauth.connect({
1501
- ...options,
1502
- ...fnOptions,
1503
- throwOnError: true,
1504
- });
1505
- return data;
1506
- },
1507
- };
1508
- return mutationOptions;
1509
- };
1510
- export const mcpOauthSessionQueryKey = (options) => createQueryKey("mcpOauthSession", options);
1511
- /**
1512
- * Poll an MCP OAuth session status
1513
- */
1514
- export const mcpOauthSessionOptions = (options) => queryOptions({
1515
- queryFn: async ({ queryKey, signal }) => {
1516
- const { data } = await RenClient.__registry.get().mcp.oauth.session({
1517
- ...options,
1518
- ...queryKey[0],
1519
- signal,
1520
- throwOnError: true,
1521
- });
1522
- return data;
1523
- },
1524
- queryKey: mcpOauthSessionQueryKey(options),
1525
- });
1526
1653
  export const meGetQueryKey = (options) => createQueryKey("meGet", options);
1527
1654
  /**
1528
1655
  * Get the authenticated principal
@@ -1668,6 +1795,8 @@ export const memoryStoreUpdateMutation = (options) => {
1668
1795
  };
1669
1796
  /**
1670
1797
  * Archive a memory store
1798
+ *
1799
+ * Archives the store metadata but keeps every stored object. Bytes remain recoverable until a retention sweep purges stores archived more than 30 days.
1671
1800
  */
1672
1801
  export const memoryStoreArchiveMutation = (options) => {
1673
1802
  const mutationOptions = {
@@ -1684,6 +1813,8 @@ export const memoryStoreArchiveMutation = (options) => {
1684
1813
  };
1685
1814
  /**
1686
1815
  * Delete a file
1816
+ *
1817
+ * Deletes a file from the store. This does not coordinate with live sandbox mounts: a sandbox holding an unflushed write to the same path can re-create the file after this delete lands.
1687
1818
  */
1688
1819
  export const memoryStoreFilesDeleteMutation = (options) => {
1689
1820
  const mutationOptions = {
@@ -1701,6 +1832,8 @@ export const memoryStoreFilesDeleteMutation = (options) => {
1701
1832
  export const memoryStoreFilesListQueryKey = (options) => createQueryKey("memoryStoreFilesList", options);
1702
1833
  /**
1703
1834
  * List files in a memory store
1835
+ *
1836
+ * Lists finalized files under the given prefix. Reads can be stale relative to a live mount: a sandbox holding an unflushed write to the same path may not have uploaded it yet, and a mount can serve a cached read of a file another writer has since changed (bounded by the mount's cache windows).
1704
1837
  */
1705
1838
  export const memoryStoreFilesListOptions = (options) => queryOptions({
1706
1839
  queryFn: async ({ queryKey, signal }) => {
@@ -1717,6 +1850,8 @@ export const memoryStoreFilesListOptions = (options) => queryOptions({
1717
1850
  export const memoryStoreFilesPresignDownloadQueryKey = (options) => createQueryKey("memoryStoreFilesPresignDownload", options);
1718
1851
  /**
1719
1852
  * Get a presigned GET URL for a file
1853
+ *
1854
+ * Returns a presigned GET URL for a file. Content can be stale relative to a live mount: a mount may serve a cached read of a file another writer has changed, and a sandbox's own unflushed write may not be reflected yet (bounded by the mount's cache windows).
1720
1855
  */
1721
1856
  export const memoryStoreFilesPresignDownloadOptions = (options) => queryOptions({
1722
1857
  queryFn: async ({ queryKey, signal }) => {
@@ -1732,6 +1867,8 @@ export const memoryStoreFilesPresignDownloadOptions = (options) => queryOptions(
1732
1867
  });
1733
1868
  /**
1734
1869
  * Start a presigned upload
1870
+ *
1871
+ * Starts a presigned upload. The returned URL uploads bytes to a private staging area outside the store — the file is invisible to workspaces and absent from the store's file list until finalize promotes it. Returns an uploadId that finalize requires. For small files a tool can call, prefer PUT /:id/files/content.
1735
1872
  */
1736
1873
  export const memoryStoreFilesStartUploadMutation = (options) => {
1737
1874
  const mutationOptions = {
@@ -1748,6 +1885,8 @@ export const memoryStoreFilesStartUploadMutation = (options) => {
1748
1885
  };
1749
1886
  /**
1750
1887
  * Finalize an upload
1888
+ *
1889
+ * Finalizes a presigned upload identified by uploadId: stats the staged object, enforces the 50 MiB ceiling (over-limit objects are rejected and deleted), promotes it onto the store key, and fans the new file out to attached workspaces. Required — an unfinalized upload stays in staging, invisible to workspaces and the file list, and is reaped after 24 hours.
1751
1890
  */
1752
1891
  export const memoryStoreFilesFinalizeUploadMutation = (options) => {
1753
1892
  const mutationOptions = {
@@ -1762,6 +1901,24 @@ export const memoryStoreFilesFinalizeUploadMutation = (options) => {
1762
1901
  };
1763
1902
  return mutationOptions;
1764
1903
  };
1904
+ /**
1905
+ * Write a small file directly
1906
+ *
1907
+ * Writes the raw request body to `path` in one call (no presign/finalize round-trip), capped at 5 MiB — the write path a tool-caller can use. Same path rules and workspace fan-out as a finalized upload. Use presigned uploads for larger files.
1908
+ */
1909
+ export const memoryStoreFilesWriteContentMutation = (options) => {
1910
+ const mutationOptions = {
1911
+ mutationFn: async (fnOptions) => {
1912
+ const { data } = await RenClient.__registry.get().memoryStore.files.writeContent({
1913
+ ...options,
1914
+ ...fnOptions,
1915
+ throwOnError: true,
1916
+ });
1917
+ return data;
1918
+ },
1919
+ };
1920
+ return mutationOptions;
1921
+ };
1765
1922
  export const modelListQueryKey = (options) => createQueryKey("modelList", options);
1766
1923
  /**
1767
1924
  * List available LLM models grouped by provider
@@ -2003,9 +2160,9 @@ export const podUpdateMutation = (options) => {
2003
2160
  };
2004
2161
  export const podUsageQueryKey = (options) => createQueryKey("podUsage", options);
2005
2162
  /**
2006
- * Get total credit usage for a pod
2163
+ * Get a pod's credit usage
2007
2164
  *
2008
- * Total Ren credits consumed across the whole pod, served from the local hourly usage rollup.
2165
+ * Ren credits consumed across the whole pod, with a per-day trend, a breakdown by usage source and operation, and an optional grouped breakdown (e.g. `groupBy=project` for per-project costs). `start`/`end` bound the range (max 92 days); omit both for all-time. Served from the local hourly usage rollup.
2009
2166
  */
2010
2167
  export const podUsageOptions = (options) => queryOptions({
2011
2168
  queryFn: async ({ queryKey, signal }) => {
@@ -2019,6 +2176,35 @@ export const podUsageOptions = (options) => queryOptions({
2019
2176
  },
2020
2177
  queryKey: podUsageQueryKey(options),
2021
2178
  });
2179
+ export const podUsageInfiniteQueryKey = (options) => createQueryKey("podUsage", options, true);
2180
+ /**
2181
+ * Get a pod's credit usage
2182
+ *
2183
+ * Ren credits consumed across the whole pod, with a per-day trend, a breakdown by usage source and operation, and an optional grouped breakdown (e.g. `groupBy=project` for per-project costs). `start`/`end` bound the range (max 92 days); omit both for all-time. Served from the local hourly usage rollup.
2184
+ */
2185
+ export const podUsageInfiniteOptions = (options) => infiniteQueryOptions(
2186
+ // @ts-ignore
2187
+ {
2188
+ queryFn: async ({ pageParam, queryKey, signal }) => {
2189
+ // @ts-ignore
2190
+ const page = typeof pageParam === "object"
2191
+ ? pageParam
2192
+ : {
2193
+ query: {
2194
+ start: pageParam,
2195
+ },
2196
+ };
2197
+ const params = createInfiniteParams(queryKey, page);
2198
+ const { data } = await RenClient.__registry.get().pod.usage({
2199
+ ...options,
2200
+ ...params,
2201
+ signal,
2202
+ throwOnError: true,
2203
+ });
2204
+ return data;
2205
+ },
2206
+ queryKey: podUsageInfiniteQueryKey(options),
2207
+ });
2022
2208
  /**
2023
2209
  * Archive a pod
2024
2210
  */
@@ -2083,13 +2269,15 @@ export const podMemberRemoveMutation = (options) => {
2083
2269
  };
2084
2270
  return mutationOptions;
2085
2271
  };
2086
- export const podVaultListQueryKey = (options) => createQueryKey("podVaultList", options);
2272
+ export const podCredentialListQueryKey = (options) => createQueryKey("podCredentialList", options);
2087
2273
  /**
2088
- * List pod vaults (ordered by priority)
2274
+ * List the credentials this pod resolves against, best match first
2275
+ *
2276
+ * Read-only. Derived from the pod's tier: a shared pod sees its own vault then the org vault; a private pod sees its owner's vault, then every shared pod that owner belongs to, then the org vault. Entries shadowed by a higher-priority credential are marked rather than hidden.
2089
2277
  */
2090
- export const podVaultListOptions = (options) => queryOptions({
2278
+ export const podCredentialListOptions = (options) => queryOptions({
2091
2279
  queryFn: async ({ queryKey, signal }) => {
2092
- const { data } = await RenClient.__registry.get().pod.vault.list({
2280
+ const { data } = await RenClient.__registry.get().pod.credential.list({
2093
2281
  ...options,
2094
2282
  ...queryKey[0],
2095
2283
  signal,
@@ -2097,15 +2285,35 @@ export const podVaultListOptions = (options) => queryOptions({
2097
2285
  });
2098
2286
  return data;
2099
2287
  },
2100
- queryKey: podVaultListQueryKey(options),
2288
+ queryKey: podCredentialListQueryKey(options),
2101
2289
  });
2290
+ export const podAuthRequirementsQueryKey = (options) => createQueryKey("podAuthRequirements", options);
2102
2291
  /**
2103
- * Add a vault to a pod
2292
+ * List the credentials this pod's agents, skills and MCPs require
2293
+ *
2294
+ * Read-only. Aggregated across every project in the pod, so it answers 'what does this team still need' without picking a session. `satisfied` is evaluated against the pod's whole vault chain, so a credential held at org level counts as met. `neededBy` names the skills and MCPs that asked for each one.
2104
2295
  */
2105
- export const podVaultAddMutation = (options) => {
2296
+ export const podAuthRequirementsOptions = (options) => queryOptions({
2297
+ queryFn: async ({ queryKey, signal }) => {
2298
+ const { data } = await RenClient.__registry.get().pod.authRequirements({
2299
+ ...options,
2300
+ ...queryKey[0],
2301
+ signal,
2302
+ throwOnError: true,
2303
+ });
2304
+ return data;
2305
+ },
2306
+ queryKey: podAuthRequirementsQueryKey(options),
2307
+ });
2308
+ /**
2309
+ * Kick off provisioning for the pod's sandbox
2310
+ *
2311
+ * Starts a durable workflow that resumes the paused sandbox or provisions a fresh one. Idempotent: concurrent calls join the running workflow. Returns immediately; poll GET /status until status is 'ready'.
2312
+ */
2313
+ export const podSandboxProvisionMutation = (options) => {
2106
2314
  const mutationOptions = {
2107
2315
  mutationFn: async (fnOptions) => {
2108
- const { data } = await RenClient.__registry.get().pod.vault.add({
2316
+ const { data } = await RenClient.__registry.get().pod.sandbox.provision({
2109
2317
  ...options,
2110
2318
  ...fnOptions,
2111
2319
  throwOnError: true,
@@ -2116,12 +2324,14 @@ export const podVaultAddMutation = (options) => {
2116
2324
  return mutationOptions;
2117
2325
  };
2118
2326
  /**
2119
- * Remove a vault from a pod
2327
+ * Destroy the pod's current sandbox
2328
+ *
2329
+ * Tears down the pod's current sandbox: aborts all running sessions and discards files not persisted to a store. Does not provision a replacement — the next session start (or POST /provision) brings up a fresh one.
2120
2330
  */
2121
- export const podVaultRemoveMutation = (options) => {
2331
+ export const podSandboxTeardownMutation = (options) => {
2122
2332
  const mutationOptions = {
2123
2333
  mutationFn: async (fnOptions) => {
2124
- const { data } = await RenClient.__registry.get().pod.vault.remove({
2334
+ const { data } = await RenClient.__registry.get().pod.sandbox.teardown({
2125
2335
  ...options,
2126
2336
  ...fnOptions,
2127
2337
  throwOnError: true,
@@ -2131,15 +2341,74 @@ export const podVaultRemoveMutation = (options) => {
2131
2341
  };
2132
2342
  return mutationOptions;
2133
2343
  };
2344
+ export const podSandboxStatusQueryKey = (options) => createQueryKey("podSandboxStatus", options);
2134
2345
  /**
2135
- * Kick off provisioning for the pod's sandbox
2346
+ * Read the pod's sandbox provisioning status
2136
2347
  *
2137
- * Starts a durable workflow that resumes the paused sandbox or provisions a fresh one. Idempotent: concurrent calls join the running workflow. Returns immediately; poll GET /status until status is 'ready'.
2348
+ * Returns 'ready' once the sandbox is provisioned/resumed and credentials are available; 'provisioning' while the workflow is in flight; 'absent' if no workflow has been started and no sandbox is linked; 'failed' if the workflow terminated unhealthy.
2138
2349
  */
2139
- export const podSandboxProvisionMutation = (options) => {
2350
+ export const podSandboxStatusOptions = (options) => queryOptions({
2351
+ queryFn: async ({ queryKey, signal }) => {
2352
+ const { data } = await RenClient.__registry.get().pod.sandbox.status({
2353
+ ...options,
2354
+ ...queryKey[0],
2355
+ signal,
2356
+ throwOnError: true,
2357
+ });
2358
+ return data;
2359
+ },
2360
+ queryKey: podSandboxStatusQueryKey(options),
2361
+ });
2362
+ export const podDatabaseListQueryKey = (options) => createQueryKey("podDatabaseList", options);
2363
+ /**
2364
+ * List a pod's databases
2365
+ */
2366
+ export const podDatabaseListOptions = (options) => queryOptions({
2367
+ queryFn: async ({ queryKey, signal }) => {
2368
+ const { data } = await RenClient.__registry.get().podDatabase.list({
2369
+ ...options,
2370
+ ...queryKey[0],
2371
+ signal,
2372
+ throwOnError: true,
2373
+ });
2374
+ return data;
2375
+ },
2376
+ queryKey: podDatabaseListQueryKey(options),
2377
+ });
2378
+ export const podDatabaseListInfiniteQueryKey = (options) => createQueryKey("podDatabaseList", options, true);
2379
+ /**
2380
+ * List a pod's databases
2381
+ */
2382
+ export const podDatabaseListInfiniteOptions = (options) => infiniteQueryOptions(
2383
+ // @ts-ignore
2384
+ {
2385
+ queryFn: async ({ pageParam, queryKey, signal }) => {
2386
+ // @ts-ignore
2387
+ const page = typeof pageParam === "object"
2388
+ ? pageParam
2389
+ : {
2390
+ query: {
2391
+ offset: pageParam,
2392
+ },
2393
+ };
2394
+ const params = createInfiniteParams(queryKey, page);
2395
+ const { data } = await RenClient.__registry.get().podDatabase.list({
2396
+ ...options,
2397
+ ...params,
2398
+ signal,
2399
+ throwOnError: true,
2400
+ });
2401
+ return data;
2402
+ },
2403
+ queryKey: podDatabaseListInfiniteQueryKey(options),
2404
+ });
2405
+ /**
2406
+ * Create a pod database
2407
+ */
2408
+ export const podDatabaseCreateMutation = (options) => {
2140
2409
  const mutationOptions = {
2141
2410
  mutationFn: async (fnOptions) => {
2142
- const { data } = await RenClient.__registry.get().pod.sandbox.provision({
2411
+ const { data } = await RenClient.__registry.get().podDatabase.create({
2143
2412
  ...options,
2144
2413
  ...fnOptions,
2145
2414
  throwOnError: true,
@@ -2149,15 +2418,29 @@ export const podSandboxProvisionMutation = (options) => {
2149
2418
  };
2150
2419
  return mutationOptions;
2151
2420
  };
2421
+ export const podDatabaseGetQueryKey = (options) => createQueryKey("podDatabaseGet", options);
2152
2422
  /**
2153
- * Destroy the pod's current sandbox
2154
- *
2155
- * Tears down the pod's current sandbox: aborts all running sessions and discards files not persisted to a store. Does not provision a replacement — the next session start (or POST /provision) brings up a fresh one.
2423
+ * Get a pod database
2156
2424
  */
2157
- export const podSandboxTeardownMutation = (options) => {
2425
+ export const podDatabaseGetOptions = (options) => queryOptions({
2426
+ queryFn: async ({ queryKey, signal }) => {
2427
+ const { data } = await RenClient.__registry.get().podDatabase.get({
2428
+ ...options,
2429
+ ...queryKey[0],
2430
+ signal,
2431
+ throwOnError: true,
2432
+ });
2433
+ return data;
2434
+ },
2435
+ queryKey: podDatabaseGetQueryKey(options),
2436
+ });
2437
+ /**
2438
+ * Update a pod database
2439
+ */
2440
+ export const podDatabaseUpdateMutation = (options) => {
2158
2441
  const mutationOptions = {
2159
2442
  mutationFn: async (fnOptions) => {
2160
- const { data } = await RenClient.__registry.get().pod.sandbox.teardown({
2443
+ const { data } = await RenClient.__registry.get().podDatabase.update({
2161
2444
  ...options,
2162
2445
  ...fnOptions,
2163
2446
  throwOnError: true,
@@ -2167,15 +2450,29 @@ export const podSandboxTeardownMutation = (options) => {
2167
2450
  };
2168
2451
  return mutationOptions;
2169
2452
  };
2170
- export const podSandboxStatusQueryKey = (options) => createQueryKey("podSandboxStatus", options);
2171
2453
  /**
2172
- * Read the pod's sandbox provisioning status
2173
- *
2174
- * Returns 'ready' once the sandbox is provisioned/resumed and credentials are available; 'provisioning' while the workflow is in flight; 'absent' if no workflow has been started and no sandbox is linked; 'failed' if the workflow terminated unhealthy.
2454
+ * Archive a pod database, keeping its S3 replica restorable
2175
2455
  */
2176
- export const podSandboxStatusOptions = (options) => queryOptions({
2456
+ export const podDatabaseArchiveMutation = (options) => {
2457
+ const mutationOptions = {
2458
+ mutationFn: async (fnOptions) => {
2459
+ const { data } = await RenClient.__registry.get().podDatabase.archive({
2460
+ ...options,
2461
+ ...fnOptions,
2462
+ throwOnError: true,
2463
+ });
2464
+ return data;
2465
+ },
2466
+ };
2467
+ return mutationOptions;
2468
+ };
2469
+ export const artifactListQueryKey = (options) => createQueryKey("artifactList", options);
2470
+ /**
2471
+ * List a pod's artifacts
2472
+ */
2473
+ export const artifactListOptions = (options) => queryOptions({
2177
2474
  queryFn: async ({ queryKey, signal }) => {
2178
- const { data } = await RenClient.__registry.get().pod.sandbox.status({
2475
+ const { data } = await RenClient.__registry.get().artifact.list({
2179
2476
  ...options,
2180
2477
  ...queryKey[0],
2181
2478
  signal,
@@ -2183,8 +2480,99 @@ export const podSandboxStatusOptions = (options) => queryOptions({
2183
2480
  });
2184
2481
  return data;
2185
2482
  },
2186
- queryKey: podSandboxStatusQueryKey(options),
2483
+ queryKey: artifactListQueryKey(options),
2484
+ });
2485
+ export const artifactListInfiniteQueryKey = (options) => createQueryKey("artifactList", options, true);
2486
+ /**
2487
+ * List a pod's artifacts
2488
+ */
2489
+ export const artifactListInfiniteOptions = (options) => infiniteQueryOptions(
2490
+ // @ts-ignore
2491
+ {
2492
+ queryFn: async ({ pageParam, queryKey, signal }) => {
2493
+ // @ts-ignore
2494
+ const page = typeof pageParam === "object"
2495
+ ? pageParam
2496
+ : {
2497
+ query: {
2498
+ offset: pageParam,
2499
+ },
2500
+ };
2501
+ const params = createInfiniteParams(queryKey, page);
2502
+ const { data } = await RenClient.__registry.get().artifact.list({
2503
+ ...options,
2504
+ ...params,
2505
+ signal,
2506
+ throwOnError: true,
2507
+ });
2508
+ return data;
2509
+ },
2510
+ queryKey: artifactListInfiniteQueryKey(options),
2187
2511
  });
2512
+ /**
2513
+ * Create an artifact
2514
+ */
2515
+ export const artifactCreateMutation = (options) => {
2516
+ const mutationOptions = {
2517
+ mutationFn: async (fnOptions) => {
2518
+ const { data } = await RenClient.__registry.get().artifact.create({
2519
+ ...options,
2520
+ ...fnOptions,
2521
+ throwOnError: true,
2522
+ });
2523
+ return data;
2524
+ },
2525
+ };
2526
+ return mutationOptions;
2527
+ };
2528
+ export const artifactGetQueryKey = (options) => createQueryKey("artifactGet", options);
2529
+ /**
2530
+ * Get an artifact
2531
+ */
2532
+ export const artifactGetOptions = (options) => queryOptions({
2533
+ queryFn: async ({ queryKey, signal }) => {
2534
+ const { data } = await RenClient.__registry.get().artifact.get({
2535
+ ...options,
2536
+ ...queryKey[0],
2537
+ signal,
2538
+ throwOnError: true,
2539
+ });
2540
+ return data;
2541
+ },
2542
+ queryKey: artifactGetQueryKey(options),
2543
+ });
2544
+ /**
2545
+ * Update an artifact
2546
+ */
2547
+ export const artifactUpdateMutation = (options) => {
2548
+ const mutationOptions = {
2549
+ mutationFn: async (fnOptions) => {
2550
+ const { data } = await RenClient.__registry.get().artifact.update({
2551
+ ...options,
2552
+ ...fnOptions,
2553
+ throwOnError: true,
2554
+ });
2555
+ return data;
2556
+ },
2557
+ };
2558
+ return mutationOptions;
2559
+ };
2560
+ /**
2561
+ * Archive an artifact, keeping its S3 files as a backup
2562
+ */
2563
+ export const artifactArchiveMutation = (options) => {
2564
+ const mutationOptions = {
2565
+ mutationFn: async (fnOptions) => {
2566
+ const { data } = await RenClient.__registry.get().artifact.archive({
2567
+ ...options,
2568
+ ...fnOptions,
2569
+ throwOnError: true,
2570
+ });
2571
+ return data;
2572
+ },
2573
+ };
2574
+ return mutationOptions;
2575
+ };
2188
2576
  export const projectListQueryKey = (options) => createQueryKey("projectList", options);
2189
2577
  /**
2190
2578
  * List projects
@@ -2326,6 +2714,8 @@ export const projectUsageInfiniteOptions = (options) => infiniteQueryOptions(
2326
2714
  export const projectAgentListQueryKey = (options) => createQueryKey("projectAgentList", options);
2327
2715
  /**
2328
2716
  * List agents attached to a project
2717
+ *
2718
+ * Includes the auto-attached published "ren" meta agent (mode "all"), which project creation adds transactionally — it is present without any explicit project.agent.add call.
2329
2719
  */
2330
2720
  export const projectAgentListOptions = (options) => queryOptions({
2331
2721
  queryFn: async ({ queryKey, signal }) => {
@@ -2341,6 +2731,8 @@ export const projectAgentListOptions = (options) => queryOptions({
2341
2731
  });
2342
2732
  /**
2343
2733
  * Attach an agent to a project
2734
+ *
2735
+ * Attaches an agent as a new placement. Re-attaching an already attached agent is a 409 — use project.agent.update to change its pin or mode. Note: creating a project auto-attaches the published "ren" meta agent with mode "all", so it appears in project.agent.list without an explicit add.
2344
2736
  */
2345
2737
  export const projectAgentAddMutation = (options) => {
2346
2738
  const mutationOptions = {
@@ -2848,9 +3240,27 @@ export const replayShareMutation = (options) => {
2848
3240
  };
2849
3241
  return mutationOptions;
2850
3242
  };
3243
+ /**
3244
+ * Upload a resource icon image
3245
+ */
3246
+ export const resourceIconUploadMutation = (options) => {
3247
+ const mutationOptions = {
3248
+ mutationFn: async (fnOptions) => {
3249
+ const { data } = await RenClient.__registry.get().resourceIcon.upload({
3250
+ ...options,
3251
+ ...fnOptions,
3252
+ throwOnError: true,
3253
+ });
3254
+ return data;
3255
+ },
3256
+ };
3257
+ return mutationOptions;
3258
+ };
2851
3259
  export const sessionListQueryKey = (options) => createQueryKey("sessionList", options);
2852
3260
  /**
2853
3261
  * List sessions
3262
+ *
3263
+ * Scoped to the calling user: pods they are a member of, then the projects visible to them in those pods. Requires a user-attributed token.
2854
3264
  */
2855
3265
  export const sessionListOptions = (options) => queryOptions({
2856
3266
  queryFn: async ({ queryKey, signal }) => {
@@ -2867,6 +3277,8 @@ export const sessionListOptions = (options) => queryOptions({
2867
3277
  export const sessionListInfiniteQueryKey = (options) => createQueryKey("sessionList", options, true);
2868
3278
  /**
2869
3279
  * List sessions
3280
+ *
3281
+ * Scoped to the calling user: pods they are a member of, then the projects visible to them in those pods. Requires a user-attributed token.
2870
3282
  */
2871
3283
  export const sessionListInfiniteOptions = (options) => infiniteQueryOptions(
2872
3284
  // @ts-ignore
@@ -3513,13 +3925,13 @@ export const topologyShareArchiveMutation = (options) => {
3513
3925
  };
3514
3926
  return mutationOptions;
3515
3927
  };
3516
- export const triggerListQueryKey = (options) => createQueryKey("triggerList", options);
3928
+ export const cronTriggerListQueryKey = (options) => createQueryKey("cronTriggerList", options);
3517
3929
  /**
3518
3930
  * List cron triggers in a project
3519
3931
  */
3520
- export const triggerListOptions = (options) => queryOptions({
3932
+ export const cronTriggerListOptions = (options) => queryOptions({
3521
3933
  queryFn: async ({ queryKey, signal }) => {
3522
- const { data } = await RenClient.__registry.get().trigger.list({
3934
+ const { data } = await RenClient.__registry.get().cronTrigger.list({
3523
3935
  ...options,
3524
3936
  ...queryKey[0],
3525
3937
  signal,
@@ -3527,13 +3939,13 @@ export const triggerListOptions = (options) => queryOptions({
3527
3939
  });
3528
3940
  return data;
3529
3941
  },
3530
- queryKey: triggerListQueryKey(options),
3942
+ queryKey: cronTriggerListQueryKey(options),
3531
3943
  });
3532
- export const triggerListInfiniteQueryKey = (options) => createQueryKey("triggerList", options, true);
3944
+ export const cronTriggerListInfiniteQueryKey = (options) => createQueryKey("cronTriggerList", options, true);
3533
3945
  /**
3534
3946
  * List cron triggers in a project
3535
3947
  */
3536
- export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3948
+ export const cronTriggerListInfiniteOptions = (options) => infiniteQueryOptions(
3537
3949
  // @ts-ignore
3538
3950
  {
3539
3951
  queryFn: async ({ pageParam, queryKey, signal }) => {
@@ -3546,7 +3958,7 @@ export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3546
3958
  },
3547
3959
  };
3548
3960
  const params = createInfiniteParams(queryKey, page);
3549
- const { data } = await RenClient.__registry.get().trigger.list({
3961
+ const { data } = await RenClient.__registry.get().cronTrigger.list({
3550
3962
  ...options,
3551
3963
  ...params,
3552
3964
  signal,
@@ -3554,15 +3966,15 @@ export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3554
3966
  });
3555
3967
  return data;
3556
3968
  },
3557
- queryKey: triggerListInfiniteQueryKey(options),
3969
+ queryKey: cronTriggerListInfiniteQueryKey(options),
3558
3970
  });
3559
3971
  /**
3560
3972
  * Create a cron trigger
3561
3973
  */
3562
- export const triggerCreateMutation = (options) => {
3974
+ export const cronTriggerCreateMutation = (options) => {
3563
3975
  const mutationOptions = {
3564
3976
  mutationFn: async (fnOptions) => {
3565
- const { data } = await RenClient.__registry.get().trigger.create({
3977
+ const { data } = await RenClient.__registry.get().cronTrigger.create({
3566
3978
  ...options,
3567
3979
  ...fnOptions,
3568
3980
  throwOnError: true,
@@ -3572,13 +3984,13 @@ export const triggerCreateMutation = (options) => {
3572
3984
  };
3573
3985
  return mutationOptions;
3574
3986
  };
3575
- export const triggerGetQueryKey = (options) => createQueryKey("triggerGet", options);
3987
+ export const cronTriggerGetQueryKey = (options) => createQueryKey("cronTriggerGet", options);
3576
3988
  /**
3577
3989
  * Get a cron trigger
3578
3990
  */
3579
- export const triggerGetOptions = (options) => queryOptions({
3991
+ export const cronTriggerGetOptions = (options) => queryOptions({
3580
3992
  queryFn: async ({ queryKey, signal }) => {
3581
- const { data } = await RenClient.__registry.get().trigger.get({
3993
+ const { data } = await RenClient.__registry.get().cronTrigger.get({
3582
3994
  ...options,
3583
3995
  ...queryKey[0],
3584
3996
  signal,
@@ -3586,15 +3998,15 @@ export const triggerGetOptions = (options) => queryOptions({
3586
3998
  });
3587
3999
  return data;
3588
4000
  },
3589
- queryKey: triggerGetQueryKey(options),
4001
+ queryKey: cronTriggerGetQueryKey(options),
3590
4002
  });
3591
4003
  /**
3592
4004
  * Update a cron trigger
3593
4005
  */
3594
- export const triggerUpdateMutation = (options) => {
4006
+ export const cronTriggerUpdateMutation = (options) => {
3595
4007
  const mutationOptions = {
3596
4008
  mutationFn: async (fnOptions) => {
3597
- const { data } = await RenClient.__registry.get().trigger.update({
4009
+ const { data } = await RenClient.__registry.get().cronTrigger.update({
3598
4010
  ...options,
3599
4011
  ...fnOptions,
3600
4012
  throwOnError: true,
@@ -3607,10 +4019,10 @@ export const triggerUpdateMutation = (options) => {
3607
4019
  /**
3608
4020
  * Archive a cron trigger
3609
4021
  */
3610
- export const triggerArchiveMutation = (options) => {
4022
+ export const cronTriggerArchiveMutation = (options) => {
3611
4023
  const mutationOptions = {
3612
4024
  mutationFn: async (fnOptions) => {
3613
- const { data } = await RenClient.__registry.get().trigger.archive({
4025
+ const { data } = await RenClient.__registry.get().cronTrigger.archive({
3614
4026
  ...options,
3615
4027
  ...fnOptions,
3616
4028
  throwOnError: true,
@@ -4154,38 +4566,6 @@ export const vaultListInfiniteOptions = (options) => infiniteQueryOptions(
4154
4566
  },
4155
4567
  queryKey: vaultListInfiniteQueryKey(options),
4156
4568
  });
4157
- /**
4158
- * Create a vault
4159
- */
4160
- export const vaultCreateMutation = (options) => {
4161
- const mutationOptions = {
4162
- mutationFn: async (fnOptions) => {
4163
- const { data } = await RenClient.__registry.get().vault.create({
4164
- ...options,
4165
- ...fnOptions,
4166
- throwOnError: true,
4167
- });
4168
- return data;
4169
- },
4170
- };
4171
- return mutationOptions;
4172
- };
4173
- /**
4174
- * Delete a vault permanently
4175
- */
4176
- export const vaultDeleteMutation = (options) => {
4177
- const mutationOptions = {
4178
- mutationFn: async (fnOptions) => {
4179
- const { data } = await RenClient.__registry.get().vault.delete({
4180
- ...options,
4181
- ...fnOptions,
4182
- throwOnError: true,
4183
- });
4184
- return data;
4185
- },
4186
- };
4187
- return mutationOptions;
4188
- };
4189
4569
  export const vaultGetQueryKey = (options) => createQueryKey("vaultGet", options);
4190
4570
  /**
4191
4571
  * Get a vault
@@ -4202,38 +4582,6 @@ export const vaultGetOptions = (options) => queryOptions({
4202
4582
  },
4203
4583
  queryKey: vaultGetQueryKey(options),
4204
4584
  });
4205
- /**
4206
- * Update a vault (name, description)
4207
- */
4208
- export const vaultUpdateMutation = (options) => {
4209
- const mutationOptions = {
4210
- mutationFn: async (fnOptions) => {
4211
- const { data } = await RenClient.__registry.get().vault.update({
4212
- ...options,
4213
- ...fnOptions,
4214
- throwOnError: true,
4215
- });
4216
- return data;
4217
- },
4218
- };
4219
- return mutationOptions;
4220
- };
4221
- /**
4222
- * Archive a vault
4223
- */
4224
- export const vaultArchiveMutation = (options) => {
4225
- const mutationOptions = {
4226
- mutationFn: async (fnOptions) => {
4227
- const { data } = await RenClient.__registry.get().vault.archive({
4228
- ...options,
4229
- ...fnOptions,
4230
- throwOnError: true,
4231
- });
4232
- return data;
4233
- },
4234
- };
4235
- return mutationOptions;
4236
- };
4237
4585
  export const credentialListQueryKey = (options) => createQueryKey("credentialList", options);
4238
4586
  /**
4239
4587
  * List credentials
@@ -4341,22 +4689,6 @@ export const credentialUpdateMutation = (options) => {
4341
4689
  };
4342
4690
  return mutationOptions;
4343
4691
  };
4344
- /**
4345
- * Archive a credential
4346
- */
4347
- export const credentialArchiveMutation = (options) => {
4348
- const mutationOptions = {
4349
- mutationFn: async (fnOptions) => {
4350
- const { data } = await RenClient.__registry.get().credential.archive({
4351
- ...options,
4352
- ...fnOptions,
4353
- throwOnError: true,
4354
- });
4355
- return data;
4356
- },
4357
- };
4358
- return mutationOptions;
4359
- };
4360
4692
  /**
4361
4693
  * Copy or move a credential to another vault
4362
4694
  */
@@ -4374,12 +4706,12 @@ export const credentialTransferMutation = (options) => {
4374
4706
  return mutationOptions;
4375
4707
  };
4376
4708
  /**
4377
- * Begin SDK-delegated OAuth flow against an MCP
4709
+ * Start 'Sign in with X' for an MCP in this vault (or confirm it is already connected)
4378
4710
  */
4379
- export const credentialOauthStartMutation = (options) => {
4711
+ export const credentialOauthConnectMutation = (options) => {
4380
4712
  const mutationOptions = {
4381
4713
  mutationFn: async (fnOptions) => {
4382
- const { data } = await RenClient.__registry.get().credential.oauth.start({
4714
+ const { data } = await RenClient.__registry.get().credential.oauth.connect({
4383
4715
  ...options,
4384
4716
  ...fnOptions,
4385
4717
  throwOnError: true,
@@ -4391,7 +4723,7 @@ export const credentialOauthStartMutation = (options) => {
4391
4723
  };
4392
4724
  export const credentialOauthSessionQueryKey = (options) => createQueryKey("credentialOauthSession", options);
4393
4725
  /**
4394
- * Poll an OAuth session's status
4726
+ * Poll a sign-in session's status
4395
4727
  */
4396
4728
  export const credentialOauthSessionOptions = (options) => queryOptions({
4397
4729
  queryFn: async ({ queryKey, signal }) => {
@@ -4582,6 +4914,49 @@ export const registryMcpGetOptions = (options) => queryOptions({
4582
4914
  },
4583
4915
  queryKey: registryMcpGetQueryKey(options),
4584
4916
  });
4917
+ export const registryBlueprintListQueryKey = (options) => createQueryKey("registryBlueprintList", options);
4918
+ /**
4919
+ * List registry blueprints
4920
+ */
4921
+ export const registryBlueprintListOptions = (options) => queryOptions({
4922
+ queryFn: async ({ queryKey, signal }) => {
4923
+ const { data } = await RenClient.__registry.get().registry.blueprint.list({
4924
+ ...options,
4925
+ ...queryKey[0],
4926
+ signal,
4927
+ throwOnError: true,
4928
+ });
4929
+ return data;
4930
+ },
4931
+ queryKey: registryBlueprintListQueryKey(options),
4932
+ });
4933
+ export const registryBlueprintListInfiniteQueryKey = (options) => createQueryKey("registryBlueprintList", options, true);
4934
+ /**
4935
+ * List registry blueprints
4936
+ */
4937
+ export const registryBlueprintListInfiniteOptions = (options) => infiniteQueryOptions(
4938
+ // @ts-ignore
4939
+ {
4940
+ queryFn: async ({ pageParam, queryKey, signal }) => {
4941
+ // @ts-ignore
4942
+ const page = typeof pageParam === "object"
4943
+ ? pageParam
4944
+ : {
4945
+ query: {
4946
+ offset: pageParam,
4947
+ },
4948
+ };
4949
+ const params = createInfiniteParams(queryKey, page);
4950
+ const { data } = await RenClient.__registry.get().registry.blueprint.list({
4951
+ ...options,
4952
+ ...params,
4953
+ signal,
4954
+ throwOnError: true,
4955
+ });
4956
+ return data;
4957
+ },
4958
+ queryKey: registryBlueprintListInfiniteQueryKey(options),
4959
+ });
4585
4960
  export const registryBlueprintGetQueryKey = (options) => createQueryKey("registryBlueprintGet", options);
4586
4961
  /**
4587
4962
  * Get a registry blueprint by slug
@@ -4614,6 +4989,178 @@ export const registryPublisherGetOptions = (options) => queryOptions({
4614
4989
  },
4615
4990
  queryKey: registryPublisherGetQueryKey(options),
4616
4991
  });
4992
+ export const registryPublisherBlueprintsQueryKey = (options) => createQueryKey("registryPublisherBlueprints", options);
4993
+ /**
4994
+ * List a registry publisher's blueprints
4995
+ */
4996
+ export const registryPublisherBlueprintsOptions = (options) => queryOptions({
4997
+ queryFn: async ({ queryKey, signal }) => {
4998
+ const { data } = await RenClient.__registry.get().registry.publisher.blueprints({
4999
+ ...options,
5000
+ ...queryKey[0],
5001
+ signal,
5002
+ throwOnError: true,
5003
+ });
5004
+ return data;
5005
+ },
5006
+ queryKey: registryPublisherBlueprintsQueryKey(options),
5007
+ });
5008
+ export const registryPublisherBlueprintsInfiniteQueryKey = (options) => createQueryKey("registryPublisherBlueprints", options, true);
5009
+ /**
5010
+ * List a registry publisher's blueprints
5011
+ */
5012
+ export const registryPublisherBlueprintsInfiniteOptions = (options) => infiniteQueryOptions(
5013
+ // @ts-ignore
5014
+ {
5015
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5016
+ // @ts-ignore
5017
+ const page = typeof pageParam === "object"
5018
+ ? pageParam
5019
+ : {
5020
+ query: {
5021
+ offset: pageParam,
5022
+ },
5023
+ };
5024
+ const params = createInfiniteParams(queryKey, page);
5025
+ const { data } = await RenClient.__registry.get().registry.publisher.blueprints({
5026
+ ...options,
5027
+ ...params,
5028
+ signal,
5029
+ throwOnError: true,
5030
+ });
5031
+ return data;
5032
+ },
5033
+ queryKey: registryPublisherBlueprintsInfiniteQueryKey(options),
5034
+ });
5035
+ export const registryPublisherSkillsQueryKey = (options) => createQueryKey("registryPublisherSkills", options);
5036
+ /**
5037
+ * List a registry publisher's skills
5038
+ */
5039
+ export const registryPublisherSkillsOptions = (options) => queryOptions({
5040
+ queryFn: async ({ queryKey, signal }) => {
5041
+ const { data } = await RenClient.__registry.get().registry.publisher.skills({
5042
+ ...options,
5043
+ ...queryKey[0],
5044
+ signal,
5045
+ throwOnError: true,
5046
+ });
5047
+ return data;
5048
+ },
5049
+ queryKey: registryPublisherSkillsQueryKey(options),
5050
+ });
5051
+ export const registryPublisherSkillsInfiniteQueryKey = (options) => createQueryKey("registryPublisherSkills", options, true);
5052
+ /**
5053
+ * List a registry publisher's skills
5054
+ */
5055
+ export const registryPublisherSkillsInfiniteOptions = (options) => infiniteQueryOptions(
5056
+ // @ts-ignore
5057
+ {
5058
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5059
+ // @ts-ignore
5060
+ const page = typeof pageParam === "object"
5061
+ ? pageParam
5062
+ : {
5063
+ query: {
5064
+ offset: pageParam,
5065
+ },
5066
+ };
5067
+ const params = createInfiniteParams(queryKey, page);
5068
+ const { data } = await RenClient.__registry.get().registry.publisher.skills({
5069
+ ...options,
5070
+ ...params,
5071
+ signal,
5072
+ throwOnError: true,
5073
+ });
5074
+ return data;
5075
+ },
5076
+ queryKey: registryPublisherSkillsInfiniteQueryKey(options),
5077
+ });
5078
+ export const registryPublisherAgentsQueryKey = (options) => createQueryKey("registryPublisherAgents", options);
5079
+ /**
5080
+ * List a registry publisher's agents
5081
+ */
5082
+ export const registryPublisherAgentsOptions = (options) => queryOptions({
5083
+ queryFn: async ({ queryKey, signal }) => {
5084
+ const { data } = await RenClient.__registry.get().registry.publisher.agents({
5085
+ ...options,
5086
+ ...queryKey[0],
5087
+ signal,
5088
+ throwOnError: true,
5089
+ });
5090
+ return data;
5091
+ },
5092
+ queryKey: registryPublisherAgentsQueryKey(options),
5093
+ });
5094
+ export const registryPublisherAgentsInfiniteQueryKey = (options) => createQueryKey("registryPublisherAgents", options, true);
5095
+ /**
5096
+ * List a registry publisher's agents
5097
+ */
5098
+ export const registryPublisherAgentsInfiniteOptions = (options) => infiniteQueryOptions(
5099
+ // @ts-ignore
5100
+ {
5101
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5102
+ // @ts-ignore
5103
+ const page = typeof pageParam === "object"
5104
+ ? pageParam
5105
+ : {
5106
+ query: {
5107
+ offset: pageParam,
5108
+ },
5109
+ };
5110
+ const params = createInfiniteParams(queryKey, page);
5111
+ const { data } = await RenClient.__registry.get().registry.publisher.agents({
5112
+ ...options,
5113
+ ...params,
5114
+ signal,
5115
+ throwOnError: true,
5116
+ });
5117
+ return data;
5118
+ },
5119
+ queryKey: registryPublisherAgentsInfiniteQueryKey(options),
5120
+ });
5121
+ export const registryPublisherMcpsQueryKey = (options) => createQueryKey("registryPublisherMcps", options);
5122
+ /**
5123
+ * List a registry publisher's MCPs
5124
+ */
5125
+ export const registryPublisherMcpsOptions = (options) => queryOptions({
5126
+ queryFn: async ({ queryKey, signal }) => {
5127
+ const { data } = await RenClient.__registry.get().registry.publisher.mcps({
5128
+ ...options,
5129
+ ...queryKey[0],
5130
+ signal,
5131
+ throwOnError: true,
5132
+ });
5133
+ return data;
5134
+ },
5135
+ queryKey: registryPublisherMcpsQueryKey(options),
5136
+ });
5137
+ export const registryPublisherMcpsInfiniteQueryKey = (options) => createQueryKey("registryPublisherMcps", options, true);
5138
+ /**
5139
+ * List a registry publisher's MCPs
5140
+ */
5141
+ export const registryPublisherMcpsInfiniteOptions = (options) => infiniteQueryOptions(
5142
+ // @ts-ignore
5143
+ {
5144
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5145
+ // @ts-ignore
5146
+ const page = typeof pageParam === "object"
5147
+ ? pageParam
5148
+ : {
5149
+ query: {
5150
+ offset: pageParam,
5151
+ },
5152
+ };
5153
+ const params = createInfiniteParams(queryKey, page);
5154
+ const { data } = await RenClient.__registry.get().registry.publisher.mcps({
5155
+ ...options,
5156
+ ...params,
5157
+ signal,
5158
+ throwOnError: true,
5159
+ });
5160
+ return data;
5161
+ },
5162
+ queryKey: registryPublisherMcpsInfiniteQueryKey(options),
5163
+ });
4617
5164
  export const registryReplayGetQueryKey = (options) => createQueryKey("registryReplayGet", options);
4618
5165
  /**
4619
5166
  * Get a registry replay by slug