@renai-labs/sdk 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,17 @@ export const podVaultListOptions = (options) => queryOptions({
2097
2285
  });
2098
2286
  return data;
2099
2287
  },
2100
- queryKey: podVaultListQueryKey(options),
2288
+ queryKey: podCredentialListQueryKey(options),
2101
2289
  });
2102
2290
  /**
2103
- * Add a vault to a pod
2291
+ * Kick off provisioning for the pod's sandbox
2292
+ *
2293
+ * 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'.
2104
2294
  */
2105
- export const podVaultAddMutation = (options) => {
2295
+ export const podSandboxProvisionMutation = (options) => {
2106
2296
  const mutationOptions = {
2107
2297
  mutationFn: async (fnOptions) => {
2108
- const { data } = await RenClient.__registry.get().pod.vault.add({
2298
+ const { data } = await RenClient.__registry.get().pod.sandbox.provision({
2109
2299
  ...options,
2110
2300
  ...fnOptions,
2111
2301
  throwOnError: true,
@@ -2116,12 +2306,14 @@ export const podVaultAddMutation = (options) => {
2116
2306
  return mutationOptions;
2117
2307
  };
2118
2308
  /**
2119
- * Remove a vault from a pod
2309
+ * Destroy the pod's current sandbox
2310
+ *
2311
+ * 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
2312
  */
2121
- export const podVaultRemoveMutation = (options) => {
2313
+ export const podSandboxTeardownMutation = (options) => {
2122
2314
  const mutationOptions = {
2123
2315
  mutationFn: async (fnOptions) => {
2124
- const { data } = await RenClient.__registry.get().pod.vault.remove({
2316
+ const { data } = await RenClient.__registry.get().pod.sandbox.teardown({
2125
2317
  ...options,
2126
2318
  ...fnOptions,
2127
2319
  throwOnError: true,
@@ -2131,15 +2323,74 @@ export const podVaultRemoveMutation = (options) => {
2131
2323
  };
2132
2324
  return mutationOptions;
2133
2325
  };
2326
+ export const podSandboxStatusQueryKey = (options) => createQueryKey("podSandboxStatus", options);
2134
2327
  /**
2135
- * Kick off provisioning for the pod's sandbox
2328
+ * Read the pod's sandbox provisioning status
2136
2329
  *
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'.
2330
+ * 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
2331
  */
2139
- export const podSandboxProvisionMutation = (options) => {
2332
+ export const podSandboxStatusOptions = (options) => queryOptions({
2333
+ queryFn: async ({ queryKey, signal }) => {
2334
+ const { data } = await RenClient.__registry.get().pod.sandbox.status({
2335
+ ...options,
2336
+ ...queryKey[0],
2337
+ signal,
2338
+ throwOnError: true,
2339
+ });
2340
+ return data;
2341
+ },
2342
+ queryKey: podSandboxStatusQueryKey(options),
2343
+ });
2344
+ export const podDatabaseListQueryKey = (options) => createQueryKey("podDatabaseList", options);
2345
+ /**
2346
+ * List a pod's databases
2347
+ */
2348
+ export const podDatabaseListOptions = (options) => queryOptions({
2349
+ queryFn: async ({ queryKey, signal }) => {
2350
+ const { data } = await RenClient.__registry.get().podDatabase.list({
2351
+ ...options,
2352
+ ...queryKey[0],
2353
+ signal,
2354
+ throwOnError: true,
2355
+ });
2356
+ return data;
2357
+ },
2358
+ queryKey: podDatabaseListQueryKey(options),
2359
+ });
2360
+ export const podDatabaseListInfiniteQueryKey = (options) => createQueryKey("podDatabaseList", options, true);
2361
+ /**
2362
+ * List a pod's databases
2363
+ */
2364
+ export const podDatabaseListInfiniteOptions = (options) => infiniteQueryOptions(
2365
+ // @ts-ignore
2366
+ {
2367
+ queryFn: async ({ pageParam, queryKey, signal }) => {
2368
+ // @ts-ignore
2369
+ const page = typeof pageParam === "object"
2370
+ ? pageParam
2371
+ : {
2372
+ query: {
2373
+ offset: pageParam,
2374
+ },
2375
+ };
2376
+ const params = createInfiniteParams(queryKey, page);
2377
+ const { data } = await RenClient.__registry.get().podDatabase.list({
2378
+ ...options,
2379
+ ...params,
2380
+ signal,
2381
+ throwOnError: true,
2382
+ });
2383
+ return data;
2384
+ },
2385
+ queryKey: podDatabaseListInfiniteQueryKey(options),
2386
+ });
2387
+ /**
2388
+ * Create a pod database
2389
+ */
2390
+ export const podDatabaseCreateMutation = (options) => {
2140
2391
  const mutationOptions = {
2141
2392
  mutationFn: async (fnOptions) => {
2142
- const { data } = await RenClient.__registry.get().pod.sandbox.provision({
2393
+ const { data } = await RenClient.__registry.get().podDatabase.create({
2143
2394
  ...options,
2144
2395
  ...fnOptions,
2145
2396
  throwOnError: true,
@@ -2149,15 +2400,29 @@ export const podSandboxProvisionMutation = (options) => {
2149
2400
  };
2150
2401
  return mutationOptions;
2151
2402
  };
2403
+ export const podDatabaseGetQueryKey = (options) => createQueryKey("podDatabaseGet", options);
2152
2404
  /**
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.
2405
+ * Get a pod database
2156
2406
  */
2157
- export const podSandboxTeardownMutation = (options) => {
2407
+ export const podDatabaseGetOptions = (options) => queryOptions({
2408
+ queryFn: async ({ queryKey, signal }) => {
2409
+ const { data } = await RenClient.__registry.get().podDatabase.get({
2410
+ ...options,
2411
+ ...queryKey[0],
2412
+ signal,
2413
+ throwOnError: true,
2414
+ });
2415
+ return data;
2416
+ },
2417
+ queryKey: podDatabaseGetQueryKey(options),
2418
+ });
2419
+ /**
2420
+ * Update a pod database
2421
+ */
2422
+ export const podDatabaseUpdateMutation = (options) => {
2158
2423
  const mutationOptions = {
2159
2424
  mutationFn: async (fnOptions) => {
2160
- const { data } = await RenClient.__registry.get().pod.sandbox.teardown({
2425
+ const { data } = await RenClient.__registry.get().podDatabase.update({
2161
2426
  ...options,
2162
2427
  ...fnOptions,
2163
2428
  throwOnError: true,
@@ -2167,15 +2432,29 @@ export const podSandboxTeardownMutation = (options) => {
2167
2432
  };
2168
2433
  return mutationOptions;
2169
2434
  };
2170
- export const podSandboxStatusQueryKey = (options) => createQueryKey("podSandboxStatus", options);
2171
2435
  /**
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.
2436
+ * Archive a pod database, keeping its S3 replica restorable
2175
2437
  */
2176
- export const podSandboxStatusOptions = (options) => queryOptions({
2438
+ export const podDatabaseArchiveMutation = (options) => {
2439
+ const mutationOptions = {
2440
+ mutationFn: async (fnOptions) => {
2441
+ const { data } = await RenClient.__registry.get().podDatabase.archive({
2442
+ ...options,
2443
+ ...fnOptions,
2444
+ throwOnError: true,
2445
+ });
2446
+ return data;
2447
+ },
2448
+ };
2449
+ return mutationOptions;
2450
+ };
2451
+ export const artifactListQueryKey = (options) => createQueryKey("artifactList", options);
2452
+ /**
2453
+ * List a pod's artifacts
2454
+ */
2455
+ export const artifactListOptions = (options) => queryOptions({
2177
2456
  queryFn: async ({ queryKey, signal }) => {
2178
- const { data } = await RenClient.__registry.get().pod.sandbox.status({
2457
+ const { data } = await RenClient.__registry.get().artifact.list({
2179
2458
  ...options,
2180
2459
  ...queryKey[0],
2181
2460
  signal,
@@ -2183,8 +2462,99 @@ export const podSandboxStatusOptions = (options) => queryOptions({
2183
2462
  });
2184
2463
  return data;
2185
2464
  },
2186
- queryKey: podSandboxStatusQueryKey(options),
2465
+ queryKey: artifactListQueryKey(options),
2466
+ });
2467
+ export const artifactListInfiniteQueryKey = (options) => createQueryKey("artifactList", options, true);
2468
+ /**
2469
+ * List a pod's artifacts
2470
+ */
2471
+ export const artifactListInfiniteOptions = (options) => infiniteQueryOptions(
2472
+ // @ts-ignore
2473
+ {
2474
+ queryFn: async ({ pageParam, queryKey, signal }) => {
2475
+ // @ts-ignore
2476
+ const page = typeof pageParam === "object"
2477
+ ? pageParam
2478
+ : {
2479
+ query: {
2480
+ offset: pageParam,
2481
+ },
2482
+ };
2483
+ const params = createInfiniteParams(queryKey, page);
2484
+ const { data } = await RenClient.__registry.get().artifact.list({
2485
+ ...options,
2486
+ ...params,
2487
+ signal,
2488
+ throwOnError: true,
2489
+ });
2490
+ return data;
2491
+ },
2492
+ queryKey: artifactListInfiniteQueryKey(options),
2187
2493
  });
2494
+ /**
2495
+ * Create an artifact
2496
+ */
2497
+ export const artifactCreateMutation = (options) => {
2498
+ const mutationOptions = {
2499
+ mutationFn: async (fnOptions) => {
2500
+ const { data } = await RenClient.__registry.get().artifact.create({
2501
+ ...options,
2502
+ ...fnOptions,
2503
+ throwOnError: true,
2504
+ });
2505
+ return data;
2506
+ },
2507
+ };
2508
+ return mutationOptions;
2509
+ };
2510
+ export const artifactGetQueryKey = (options) => createQueryKey("artifactGet", options);
2511
+ /**
2512
+ * Get an artifact
2513
+ */
2514
+ export const artifactGetOptions = (options) => queryOptions({
2515
+ queryFn: async ({ queryKey, signal }) => {
2516
+ const { data } = await RenClient.__registry.get().artifact.get({
2517
+ ...options,
2518
+ ...queryKey[0],
2519
+ signal,
2520
+ throwOnError: true,
2521
+ });
2522
+ return data;
2523
+ },
2524
+ queryKey: artifactGetQueryKey(options),
2525
+ });
2526
+ /**
2527
+ * Update an artifact
2528
+ */
2529
+ export const artifactUpdateMutation = (options) => {
2530
+ const mutationOptions = {
2531
+ mutationFn: async (fnOptions) => {
2532
+ const { data } = await RenClient.__registry.get().artifact.update({
2533
+ ...options,
2534
+ ...fnOptions,
2535
+ throwOnError: true,
2536
+ });
2537
+ return data;
2538
+ },
2539
+ };
2540
+ return mutationOptions;
2541
+ };
2542
+ /**
2543
+ * Archive an artifact, keeping its S3 files as a backup
2544
+ */
2545
+ export const artifactArchiveMutation = (options) => {
2546
+ const mutationOptions = {
2547
+ mutationFn: async (fnOptions) => {
2548
+ const { data } = await RenClient.__registry.get().artifact.archive({
2549
+ ...options,
2550
+ ...fnOptions,
2551
+ throwOnError: true,
2552
+ });
2553
+ return data;
2554
+ },
2555
+ };
2556
+ return mutationOptions;
2557
+ };
2188
2558
  export const projectListQueryKey = (options) => createQueryKey("projectList", options);
2189
2559
  /**
2190
2560
  * List projects
@@ -2326,6 +2696,8 @@ export const projectUsageInfiniteOptions = (options) => infiniteQueryOptions(
2326
2696
  export const projectAgentListQueryKey = (options) => createQueryKey("projectAgentList", options);
2327
2697
  /**
2328
2698
  * List agents attached to a project
2699
+ *
2700
+ * 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
2701
  */
2330
2702
  export const projectAgentListOptions = (options) => queryOptions({
2331
2703
  queryFn: async ({ queryKey, signal }) => {
@@ -2341,6 +2713,8 @@ export const projectAgentListOptions = (options) => queryOptions({
2341
2713
  });
2342
2714
  /**
2343
2715
  * Attach an agent to a project
2716
+ *
2717
+ * 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
2718
  */
2345
2719
  export const projectAgentAddMutation = (options) => {
2346
2720
  const mutationOptions = {
@@ -2848,6 +3222,22 @@ export const replayShareMutation = (options) => {
2848
3222
  };
2849
3223
  return mutationOptions;
2850
3224
  };
3225
+ /**
3226
+ * Upload a resource icon image
3227
+ */
3228
+ export const resourceIconUploadMutation = (options) => {
3229
+ const mutationOptions = {
3230
+ mutationFn: async (fnOptions) => {
3231
+ const { data } = await RenClient.__registry.get().resourceIcon.upload({
3232
+ ...options,
3233
+ ...fnOptions,
3234
+ throwOnError: true,
3235
+ });
3236
+ return data;
3237
+ },
3238
+ };
3239
+ return mutationOptions;
3240
+ };
2851
3241
  export const sessionListQueryKey = (options) => createQueryKey("sessionList", options);
2852
3242
  /**
2853
3243
  * List sessions
@@ -3513,13 +3903,13 @@ export const topologyShareArchiveMutation = (options) => {
3513
3903
  };
3514
3904
  return mutationOptions;
3515
3905
  };
3516
- export const triggerListQueryKey = (options) => createQueryKey("triggerList", options);
3906
+ export const cronTriggerListQueryKey = (options) => createQueryKey("cronTriggerList", options);
3517
3907
  /**
3518
3908
  * List cron triggers in a project
3519
3909
  */
3520
- export const triggerListOptions = (options) => queryOptions({
3910
+ export const cronTriggerListOptions = (options) => queryOptions({
3521
3911
  queryFn: async ({ queryKey, signal }) => {
3522
- const { data } = await RenClient.__registry.get().trigger.list({
3912
+ const { data } = await RenClient.__registry.get().cronTrigger.list({
3523
3913
  ...options,
3524
3914
  ...queryKey[0],
3525
3915
  signal,
@@ -3527,13 +3917,13 @@ export const triggerListOptions = (options) => queryOptions({
3527
3917
  });
3528
3918
  return data;
3529
3919
  },
3530
- queryKey: triggerListQueryKey(options),
3920
+ queryKey: cronTriggerListQueryKey(options),
3531
3921
  });
3532
- export const triggerListInfiniteQueryKey = (options) => createQueryKey("triggerList", options, true);
3922
+ export const cronTriggerListInfiniteQueryKey = (options) => createQueryKey("cronTriggerList", options, true);
3533
3923
  /**
3534
3924
  * List cron triggers in a project
3535
3925
  */
3536
- export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3926
+ export const cronTriggerListInfiniteOptions = (options) => infiniteQueryOptions(
3537
3927
  // @ts-ignore
3538
3928
  {
3539
3929
  queryFn: async ({ pageParam, queryKey, signal }) => {
@@ -3546,7 +3936,7 @@ export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3546
3936
  },
3547
3937
  };
3548
3938
  const params = createInfiniteParams(queryKey, page);
3549
- const { data } = await RenClient.__registry.get().trigger.list({
3939
+ const { data } = await RenClient.__registry.get().cronTrigger.list({
3550
3940
  ...options,
3551
3941
  ...params,
3552
3942
  signal,
@@ -3554,15 +3944,15 @@ export const triggerListInfiniteOptions = (options) => infiniteQueryOptions(
3554
3944
  });
3555
3945
  return data;
3556
3946
  },
3557
- queryKey: triggerListInfiniteQueryKey(options),
3947
+ queryKey: cronTriggerListInfiniteQueryKey(options),
3558
3948
  });
3559
3949
  /**
3560
3950
  * Create a cron trigger
3561
3951
  */
3562
- export const triggerCreateMutation = (options) => {
3952
+ export const cronTriggerCreateMutation = (options) => {
3563
3953
  const mutationOptions = {
3564
3954
  mutationFn: async (fnOptions) => {
3565
- const { data } = await RenClient.__registry.get().trigger.create({
3955
+ const { data } = await RenClient.__registry.get().cronTrigger.create({
3566
3956
  ...options,
3567
3957
  ...fnOptions,
3568
3958
  throwOnError: true,
@@ -3572,13 +3962,13 @@ export const triggerCreateMutation = (options) => {
3572
3962
  };
3573
3963
  return mutationOptions;
3574
3964
  };
3575
- export const triggerGetQueryKey = (options) => createQueryKey("triggerGet", options);
3965
+ export const cronTriggerGetQueryKey = (options) => createQueryKey("cronTriggerGet", options);
3576
3966
  /**
3577
3967
  * Get a cron trigger
3578
3968
  */
3579
- export const triggerGetOptions = (options) => queryOptions({
3969
+ export const cronTriggerGetOptions = (options) => queryOptions({
3580
3970
  queryFn: async ({ queryKey, signal }) => {
3581
- const { data } = await RenClient.__registry.get().trigger.get({
3971
+ const { data } = await RenClient.__registry.get().cronTrigger.get({
3582
3972
  ...options,
3583
3973
  ...queryKey[0],
3584
3974
  signal,
@@ -3586,15 +3976,15 @@ export const triggerGetOptions = (options) => queryOptions({
3586
3976
  });
3587
3977
  return data;
3588
3978
  },
3589
- queryKey: triggerGetQueryKey(options),
3979
+ queryKey: cronTriggerGetQueryKey(options),
3590
3980
  });
3591
3981
  /**
3592
3982
  * Update a cron trigger
3593
3983
  */
3594
- export const triggerUpdateMutation = (options) => {
3984
+ export const cronTriggerUpdateMutation = (options) => {
3595
3985
  const mutationOptions = {
3596
3986
  mutationFn: async (fnOptions) => {
3597
- const { data } = await RenClient.__registry.get().trigger.update({
3987
+ const { data } = await RenClient.__registry.get().cronTrigger.update({
3598
3988
  ...options,
3599
3989
  ...fnOptions,
3600
3990
  throwOnError: true,
@@ -3607,10 +3997,10 @@ export const triggerUpdateMutation = (options) => {
3607
3997
  /**
3608
3998
  * Archive a cron trigger
3609
3999
  */
3610
- export const triggerArchiveMutation = (options) => {
4000
+ export const cronTriggerArchiveMutation = (options) => {
3611
4001
  const mutationOptions = {
3612
4002
  mutationFn: async (fnOptions) => {
3613
- const { data } = await RenClient.__registry.get().trigger.archive({
4003
+ const { data } = await RenClient.__registry.get().cronTrigger.archive({
3614
4004
  ...options,
3615
4005
  ...fnOptions,
3616
4006
  throwOnError: true,
@@ -4154,38 +4544,6 @@ export const vaultListInfiniteOptions = (options) => infiniteQueryOptions(
4154
4544
  },
4155
4545
  queryKey: vaultListInfiniteQueryKey(options),
4156
4546
  });
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
4547
  export const vaultGetQueryKey = (options) => createQueryKey("vaultGet", options);
4190
4548
  /**
4191
4549
  * Get a vault
@@ -4202,38 +4560,6 @@ export const vaultGetOptions = (options) => queryOptions({
4202
4560
  },
4203
4561
  queryKey: vaultGetQueryKey(options),
4204
4562
  });
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
4563
  export const credentialListQueryKey = (options) => createQueryKey("credentialList", options);
4238
4564
  /**
4239
4565
  * List credentials
@@ -4341,22 +4667,6 @@ export const credentialUpdateMutation = (options) => {
4341
4667
  };
4342
4668
  return mutationOptions;
4343
4669
  };
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
4670
  /**
4361
4671
  * Copy or move a credential to another vault
4362
4672
  */
@@ -4374,12 +4684,12 @@ export const credentialTransferMutation = (options) => {
4374
4684
  return mutationOptions;
4375
4685
  };
4376
4686
  /**
4377
- * Begin SDK-delegated OAuth flow against an MCP
4687
+ * Start 'Sign in with X' for an MCP in this vault (or confirm it is already connected)
4378
4688
  */
4379
- export const credentialOauthStartMutation = (options) => {
4689
+ export const credentialOauthConnectMutation = (options) => {
4380
4690
  const mutationOptions = {
4381
4691
  mutationFn: async (fnOptions) => {
4382
- const { data } = await RenClient.__registry.get().credential.oauth.start({
4692
+ const { data } = await RenClient.__registry.get().credential.oauth.connect({
4383
4693
  ...options,
4384
4694
  ...fnOptions,
4385
4695
  throwOnError: true,
@@ -4391,7 +4701,7 @@ export const credentialOauthStartMutation = (options) => {
4391
4701
  };
4392
4702
  export const credentialOauthSessionQueryKey = (options) => createQueryKey("credentialOauthSession", options);
4393
4703
  /**
4394
- * Poll an OAuth session's status
4704
+ * Poll a sign-in session's status
4395
4705
  */
4396
4706
  export const credentialOauthSessionOptions = (options) => queryOptions({
4397
4707
  queryFn: async ({ queryKey, signal }) => {
@@ -4582,6 +4892,49 @@ export const registryMcpGetOptions = (options) => queryOptions({
4582
4892
  },
4583
4893
  queryKey: registryMcpGetQueryKey(options),
4584
4894
  });
4895
+ export const registryBlueprintListQueryKey = (options) => createQueryKey("registryBlueprintList", options);
4896
+ /**
4897
+ * List registry blueprints
4898
+ */
4899
+ export const registryBlueprintListOptions = (options) => queryOptions({
4900
+ queryFn: async ({ queryKey, signal }) => {
4901
+ const { data } = await RenClient.__registry.get().registry.blueprint.list({
4902
+ ...options,
4903
+ ...queryKey[0],
4904
+ signal,
4905
+ throwOnError: true,
4906
+ });
4907
+ return data;
4908
+ },
4909
+ queryKey: registryBlueprintListQueryKey(options),
4910
+ });
4911
+ export const registryBlueprintListInfiniteQueryKey = (options) => createQueryKey("registryBlueprintList", options, true);
4912
+ /**
4913
+ * List registry blueprints
4914
+ */
4915
+ export const registryBlueprintListInfiniteOptions = (options) => infiniteQueryOptions(
4916
+ // @ts-ignore
4917
+ {
4918
+ queryFn: async ({ pageParam, queryKey, signal }) => {
4919
+ // @ts-ignore
4920
+ const page = typeof pageParam === "object"
4921
+ ? pageParam
4922
+ : {
4923
+ query: {
4924
+ offset: pageParam,
4925
+ },
4926
+ };
4927
+ const params = createInfiniteParams(queryKey, page);
4928
+ const { data } = await RenClient.__registry.get().registry.blueprint.list({
4929
+ ...options,
4930
+ ...params,
4931
+ signal,
4932
+ throwOnError: true,
4933
+ });
4934
+ return data;
4935
+ },
4936
+ queryKey: registryBlueprintListInfiniteQueryKey(options),
4937
+ });
4585
4938
  export const registryBlueprintGetQueryKey = (options) => createQueryKey("registryBlueprintGet", options);
4586
4939
  /**
4587
4940
  * Get a registry blueprint by slug
@@ -4614,6 +4967,178 @@ export const registryPublisherGetOptions = (options) => queryOptions({
4614
4967
  },
4615
4968
  queryKey: registryPublisherGetQueryKey(options),
4616
4969
  });
4970
+ export const registryPublisherBlueprintsQueryKey = (options) => createQueryKey("registryPublisherBlueprints", options);
4971
+ /**
4972
+ * List a registry publisher's blueprints
4973
+ */
4974
+ export const registryPublisherBlueprintsOptions = (options) => queryOptions({
4975
+ queryFn: async ({ queryKey, signal }) => {
4976
+ const { data } = await RenClient.__registry.get().registry.publisher.blueprints({
4977
+ ...options,
4978
+ ...queryKey[0],
4979
+ signal,
4980
+ throwOnError: true,
4981
+ });
4982
+ return data;
4983
+ },
4984
+ queryKey: registryPublisherBlueprintsQueryKey(options),
4985
+ });
4986
+ export const registryPublisherBlueprintsInfiniteQueryKey = (options) => createQueryKey("registryPublisherBlueprints", options, true);
4987
+ /**
4988
+ * List a registry publisher's blueprints
4989
+ */
4990
+ export const registryPublisherBlueprintsInfiniteOptions = (options) => infiniteQueryOptions(
4991
+ // @ts-ignore
4992
+ {
4993
+ queryFn: async ({ pageParam, queryKey, signal }) => {
4994
+ // @ts-ignore
4995
+ const page = typeof pageParam === "object"
4996
+ ? pageParam
4997
+ : {
4998
+ query: {
4999
+ offset: pageParam,
5000
+ },
5001
+ };
5002
+ const params = createInfiniteParams(queryKey, page);
5003
+ const { data } = await RenClient.__registry.get().registry.publisher.blueprints({
5004
+ ...options,
5005
+ ...params,
5006
+ signal,
5007
+ throwOnError: true,
5008
+ });
5009
+ return data;
5010
+ },
5011
+ queryKey: registryPublisherBlueprintsInfiniteQueryKey(options),
5012
+ });
5013
+ export const registryPublisherSkillsQueryKey = (options) => createQueryKey("registryPublisherSkills", options);
5014
+ /**
5015
+ * List a registry publisher's skills
5016
+ */
5017
+ export const registryPublisherSkillsOptions = (options) => queryOptions({
5018
+ queryFn: async ({ queryKey, signal }) => {
5019
+ const { data } = await RenClient.__registry.get().registry.publisher.skills({
5020
+ ...options,
5021
+ ...queryKey[0],
5022
+ signal,
5023
+ throwOnError: true,
5024
+ });
5025
+ return data;
5026
+ },
5027
+ queryKey: registryPublisherSkillsQueryKey(options),
5028
+ });
5029
+ export const registryPublisherSkillsInfiniteQueryKey = (options) => createQueryKey("registryPublisherSkills", options, true);
5030
+ /**
5031
+ * List a registry publisher's skills
5032
+ */
5033
+ export const registryPublisherSkillsInfiniteOptions = (options) => infiniteQueryOptions(
5034
+ // @ts-ignore
5035
+ {
5036
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5037
+ // @ts-ignore
5038
+ const page = typeof pageParam === "object"
5039
+ ? pageParam
5040
+ : {
5041
+ query: {
5042
+ offset: pageParam,
5043
+ },
5044
+ };
5045
+ const params = createInfiniteParams(queryKey, page);
5046
+ const { data } = await RenClient.__registry.get().registry.publisher.skills({
5047
+ ...options,
5048
+ ...params,
5049
+ signal,
5050
+ throwOnError: true,
5051
+ });
5052
+ return data;
5053
+ },
5054
+ queryKey: registryPublisherSkillsInfiniteQueryKey(options),
5055
+ });
5056
+ export const registryPublisherAgentsQueryKey = (options) => createQueryKey("registryPublisherAgents", options);
5057
+ /**
5058
+ * List a registry publisher's agents
5059
+ */
5060
+ export const registryPublisherAgentsOptions = (options) => queryOptions({
5061
+ queryFn: async ({ queryKey, signal }) => {
5062
+ const { data } = await RenClient.__registry.get().registry.publisher.agents({
5063
+ ...options,
5064
+ ...queryKey[0],
5065
+ signal,
5066
+ throwOnError: true,
5067
+ });
5068
+ return data;
5069
+ },
5070
+ queryKey: registryPublisherAgentsQueryKey(options),
5071
+ });
5072
+ export const registryPublisherAgentsInfiniteQueryKey = (options) => createQueryKey("registryPublisherAgents", options, true);
5073
+ /**
5074
+ * List a registry publisher's agents
5075
+ */
5076
+ export const registryPublisherAgentsInfiniteOptions = (options) => infiniteQueryOptions(
5077
+ // @ts-ignore
5078
+ {
5079
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5080
+ // @ts-ignore
5081
+ const page = typeof pageParam === "object"
5082
+ ? pageParam
5083
+ : {
5084
+ query: {
5085
+ offset: pageParam,
5086
+ },
5087
+ };
5088
+ const params = createInfiniteParams(queryKey, page);
5089
+ const { data } = await RenClient.__registry.get().registry.publisher.agents({
5090
+ ...options,
5091
+ ...params,
5092
+ signal,
5093
+ throwOnError: true,
5094
+ });
5095
+ return data;
5096
+ },
5097
+ queryKey: registryPublisherAgentsInfiniteQueryKey(options),
5098
+ });
5099
+ export const registryPublisherMcpsQueryKey = (options) => createQueryKey("registryPublisherMcps", options);
5100
+ /**
5101
+ * List a registry publisher's MCPs
5102
+ */
5103
+ export const registryPublisherMcpsOptions = (options) => queryOptions({
5104
+ queryFn: async ({ queryKey, signal }) => {
5105
+ const { data } = await RenClient.__registry.get().registry.publisher.mcps({
5106
+ ...options,
5107
+ ...queryKey[0],
5108
+ signal,
5109
+ throwOnError: true,
5110
+ });
5111
+ return data;
5112
+ },
5113
+ queryKey: registryPublisherMcpsQueryKey(options),
5114
+ });
5115
+ export const registryPublisherMcpsInfiniteQueryKey = (options) => createQueryKey("registryPublisherMcps", options, true);
5116
+ /**
5117
+ * List a registry publisher's MCPs
5118
+ */
5119
+ export const registryPublisherMcpsInfiniteOptions = (options) => infiniteQueryOptions(
5120
+ // @ts-ignore
5121
+ {
5122
+ queryFn: async ({ pageParam, queryKey, signal }) => {
5123
+ // @ts-ignore
5124
+ const page = typeof pageParam === "object"
5125
+ ? pageParam
5126
+ : {
5127
+ query: {
5128
+ offset: pageParam,
5129
+ },
5130
+ };
5131
+ const params = createInfiniteParams(queryKey, page);
5132
+ const { data } = await RenClient.__registry.get().registry.publisher.mcps({
5133
+ ...options,
5134
+ ...params,
5135
+ signal,
5136
+ throwOnError: true,
5137
+ });
5138
+ return data;
5139
+ },
5140
+ queryKey: registryPublisherMcpsInfiniteQueryKey(options),
5141
+ });
4617
5142
  export const registryReplayGetQueryKey = (options) => createQueryKey("registryReplayGet", options);
4618
5143
  /**
4619
5144
  * Get a registry replay by slug