@blaxel/core 0.3.22-preview.299 → 0.3.23-preview.301

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.
Files changed (37) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/client/sdk.gen.js +26 -9
  3. package/dist/cjs/common/settings.js +3 -3
  4. package/dist/cjs/common/settings.test.js +3 -3
  5. package/dist/cjs/image/image.js +32 -0
  6. package/dist/cjs/image/pagination.test.js +105 -0
  7. package/dist/cjs/types/client/sdk.gen.d.ts +22 -10
  8. package/dist/cjs/types/client/types.gen.d.ts +138 -17
  9. package/dist/cjs/types/common/pagination.d.ts +2 -0
  10. package/dist/cjs/types/drive/index.d.ts +2 -0
  11. package/dist/cjs/types/image/image.d.ts +19 -0
  12. package/dist/cjs/types/image/index.d.ts +1 -0
  13. package/dist/cjs/types/image/pagination.test.d.ts +1 -0
  14. package/dist/cjs-browser/.tsbuildinfo +1 -1
  15. package/dist/cjs-browser/client/sdk.gen.js +26 -9
  16. package/dist/cjs-browser/common/settings.js +3 -3
  17. package/dist/cjs-browser/common/settings.test.js +3 -3
  18. package/dist/cjs-browser/image/pagination.test.js +105 -0
  19. package/dist/cjs-browser/types/client/sdk.gen.d.ts +22 -10
  20. package/dist/cjs-browser/types/client/types.gen.d.ts +138 -17
  21. package/dist/cjs-browser/types/common/pagination.d.ts +2 -0
  22. package/dist/cjs-browser/types/drive/index.d.ts +2 -0
  23. package/dist/cjs-browser/types/image/image.d.ts +19 -0
  24. package/dist/cjs-browser/types/image/index.d.ts +1 -0
  25. package/dist/cjs-browser/types/image/pagination.test.d.ts +1 -0
  26. package/dist/esm/.tsbuildinfo +1 -1
  27. package/dist/esm/client/sdk.gen.js +22 -6
  28. package/dist/esm/common/settings.js +3 -3
  29. package/dist/esm/common/settings.test.js +3 -3
  30. package/dist/esm/image/image.js +32 -0
  31. package/dist/esm/image/pagination.test.js +70 -0
  32. package/dist/esm-browser/.tsbuildinfo +1 -1
  33. package/dist/esm-browser/client/sdk.gen.js +22 -6
  34. package/dist/esm-browser/common/settings.js +3 -3
  35. package/dist/esm-browser/common/settings.test.js +3 -3
  36. package/dist/esm-browser/image/pagination.test.js +70 -0
  37. package/package.json +1 -1
@@ -2,9 +2,9 @@
2
2
  // This file is auto-generated by @hey-api/openapi-ts
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.shareImage = exports.listImageShares = exports.getImage = exports.deleteImage = exports.createImage = exports.listImages = exports.cleanupImages = exports.listFunctionRevisions = exports.updateFunction = exports.getFunction = exports.deleteFunction = exports.createFunction = exports.listFunctions = exports.testFeatureFlag = exports.getWorkspaceFeatures = exports.listAllEgressIps = exports.getEgressGatewayUsage = exports.listAllEgressGateways = exports.getDriveJwks = exports.getDriveByExternalId = exports.createDriveAccessToken = exports.updateDrive = exports.getDrive = exports.deleteDrive = exports.createDrive = exports.listDrives = exports.verifyCustomDomain = exports.unshareCustomDomain = exports.shareCustomDomain = exports.listCustomDomainShares = exports.updateCustomDomain = exports.getCustomDomain = exports.deleteCustomDomain = exports.createCustomDomain = exports.listCustomDomains = exports.getConfiguration = exports.getChangelog = exports.listApplicationRevisions = exports.createApplicationCustomDomain = exports.updateApplication = exports.getApplication = exports.deleteApplication = exports.createApplication = exports.listApplications = exports.listAgentRevisions = exports.updateAgent = exports.getAgent = exports.deleteAgent = exports.createAgent = exports.listAgents = void 0;
5
- exports.createSandboxPreview = exports.listSandboxPreviews = exports.forkSandbox = exports.archiveSandbox = exports.updateSandbox = exports.getSandbox = exports.deleteSandbox = exports.createSandbox = exports.listSandboxes = exports.listSandboxHubDefinitions = exports.listPublicIps = exports.getPolicyUsages = exports.updatePolicy = exports.getPolicy = exports.deletePolicy = exports.createPolicy = exports.listPolicies = exports.declineImageShare = exports.acceptImageShare = exports.listPendingImageShares = exports.listModelRevisions = exports.updateModel = exports.getModel = exports.deleteModel = exports.createModel = exports.listModels = exports.listMcpHubDefinitions = exports.listLocations = exports.listJobRevisions = exports.listJobExecutionTasks = exports.getJobExecution = exports.deleteJobExecution = exports.createJobExecution = exports.listJobExecutions = exports.updateJob = exports.getJob = exports.deleteJob = exports.createJob = exports.listJobs = exports.getIntegrationConnectionModel = exports.listIntegrationConnectionModels = exports.getIntegrationConnectionModelEndpointConfigurations = exports.updateIntegrationConnection = exports.getIntegrationConnection = exports.deleteIntegrationConnection = exports.createIntegrationConnection = exports.listIntegrationConnections = exports.getIntegration = exports.deleteImageTag = exports.unshareImage = void 0;
6
- exports.updateVolume = exports.getVolume = exports.deleteVolume = exports.createVolume = exports.listVolumes = exports.deleteVolumeTemplateVersion = exports.updateVolumeTemplate = exports.getVolumeTemplate = exports.deleteVolumeTemplate = exports.createVolumeTemplate = exports.listVolumeTemplates = exports.updateWorkspaceUserRole = exports.removeWorkspaceUser = exports.inviteWorkspaceUser = exports.listWorkspaceUsers = exports.getTemplate = exports.listTemplates = exports.forkSnapshot = exports.getSnapshot = exports.deleteSnapshot = exports.createSnapshot = exports.listSnapshots = exports.deleteApiKeyForServiceAccount = exports.createApiKeyForServiceAccount = exports.listApiKeysForServiceAccount = exports.updateWorkspaceServiceAccount = exports.deleteWorkspaceServiceAccount = exports.createWorkspaceServiceAccount = exports.getWorkspaceServiceAccounts = exports.getSandboxScheduleMetrics = exports.listSchedules = exports.listScheduleExecutions = exports.getSandboxByExternalId = exports.unarchiveSandbox = exports.restoreSandboxSnapshot = exports.deleteSandboxSnapshot = exports.createSandboxSnapshot = exports.listSandboxSnapshots = exports.updateSandboxSchedule = exports.getSandboxSchedule = exports.deleteSandboxSchedule = exports.createSandboxSchedule = exports.listSandboxSchedules = exports.listSandboxScheduleExecutions = exports.deleteSandboxPreviewToken = exports.createSandboxPreviewToken = exports.listSandboxPreviewTokens = exports.updateSandboxPreview = exports.getSandboxPreview = exports.deleteSandboxPreview = void 0;
7
- exports.checkWorkspaceAvailability = exports.leaveWorkspace = exports.updateWorkspace = exports.getWorkspace = exports.deleteWorkspace = exports.createWorkspace = exports.listWorkspaces = exports.getEgressIp = exports.deleteEgressIp = exports.createEgressIp = exports.listEgressIps = exports.getEgressGateway = exports.deleteEgressGateway = exports.createEgressGateway = exports.listEgressGateways = exports.getVpc = exports.deleteVpc = exports.createVpc = exports.listVpcs = exports.getVolumeByExternalId = void 0;
5
+ exports.listSandboxPreviews = exports.forkSandbox = exports.archiveSandbox = exports.updateSandbox = exports.getSandbox = exports.deleteSandbox = exports.createSandbox = exports.listSandboxes = exports.listSandboxHubDefinitions = exports.listPublicIps = exports.getPolicyUsages = exports.updatePolicy = exports.getPolicy = exports.deletePolicy = exports.createPolicy = exports.listPolicies = exports.declineImageShare = exports.acceptImageShare = exports.listPendingImageShares = exports.listModelRevisions = exports.updateModel = exports.getModel = exports.deleteModel = exports.createModel = exports.listModels = exports.listMcpHubDefinitions = exports.listLocations = exports.listJobRevisions = exports.listJobExecutionTasks = exports.getJobExecution = exports.deleteJobExecution = exports.createJobExecution = exports.listJobExecutions = exports.updateJob = exports.getJob = exports.deleteJob = exports.createJob = exports.listJobs = exports.getIntegrationConnectionModel = exports.listIntegrationConnectionModels = exports.getIntegrationConnectionModelEndpointConfigurations = exports.updateIntegrationConnection = exports.getIntegrationConnection = exports.deleteIntegrationConnection = exports.createIntegrationConnection = exports.listIntegrationConnections = exports.getIntegration = exports.deleteImageTag = exports.listImageTags = exports.unshareImage = void 0;
6
+ exports.getVolume = exports.deleteVolume = exports.createVolume = exports.listVolumes = exports.deleteVolumeTemplateVersion = exports.updateVolumeTemplate = exports.getVolumeTemplate = exports.deleteVolumeTemplate = exports.createVolumeTemplate = exports.listVolumeTemplates = exports.updateWorkspaceUserRole = exports.removeWorkspaceUser = exports.inviteWorkspaceUser = exports.listWorkspaceUsers = exports.getTemplate = exports.listTemplates = exports.forkSnapshot = exports.getSnapshot = exports.deleteSnapshot = exports.createSnapshot = exports.listSnapshots = exports.deleteApiKeyForServiceAccount = exports.createApiKeyForServiceAccount = exports.listApiKeysForServiceAccount = exports.updateWorkspaceServiceAccount = exports.deleteWorkspaceServiceAccount = exports.createWorkspaceServiceAccount = exports.getWorkspaceServiceAccounts = exports.getSandboxScheduleMetrics = exports.listSchedules = exports.listScheduleExecutions = exports.getSandboxByExternalId = exports.unarchiveSandbox = exports.restoreSandboxSnapshot = exports.deleteSandboxSnapshot = exports.createSandboxSnapshot = exports.listSandboxSnapshots = exports.updateSandboxSchedule = exports.getSandboxSchedule = exports.deleteSandboxSchedule = exports.createSandboxSchedule = exports.listSandboxSchedules = exports.listSandboxScheduleExecutions = exports.deleteSandboxPreviewToken = exports.createSandboxPreviewToken = exports.listSandboxPreviewTokens = exports.updateSandboxPreview = exports.getSandboxPreview = exports.deleteSandboxPreview = exports.createSandboxPreview = void 0;
7
+ exports.checkWorkspaceAvailability = exports.leaveWorkspace = exports.updateWorkspace = exports.getWorkspace = exports.deleteWorkspace = exports.createWorkspace = exports.listWorkspaces = exports.getEgressIp = exports.deleteEgressIp = exports.createEgressIp = exports.listEgressIps = exports.getEgressGateway = exports.deleteEgressGateway = exports.createEgressGateway = exports.listEgressGateways = exports.getVpc = exports.deleteVpc = exports.createVpc = exports.listVpcs = exports.getVolumeByExternalId = exports.updateVolume = void 0;
8
8
  const client_gen_1 = require("./client.gen");
9
9
  /**
10
10
  * List all agents
@@ -474,7 +474,7 @@ const createDrive = (options) => {
474
474
  exports.createDrive = createDrive;
475
475
  /**
476
476
  * Delete a drive
477
- * Deletes a drive immediately. The drive record is removed from the database synchronously.
477
+ * Starts the deletion of a drive. The drive is marked DELETING and its storage is wiped asynchronously; the drive disappears from listings once the cleanup completes.
478
478
  */
479
479
  const deleteDrive = (options) => {
480
480
  return (options.client ?? client_gen_1.client).delete({
@@ -784,7 +784,7 @@ const cleanupImages = (options) => {
784
784
  exports.cleanupImages = cleanupImages;
785
785
  /**
786
786
  * List container images
787
- * Returns all container images stored in the workspace registry, grouped by repository with their available tags. Images are created during deployments of agents, functions, sandboxes, and jobs.
787
+ * Returns paginated image summaries starting with API version 2026-09-22. Older versions return a bare array including all tags.
788
788
  */
789
789
  const listImages = (options) => {
790
790
  return (options?.client ?? client_gen_1.client).get({
@@ -839,7 +839,7 @@ const deleteImage = (options) => {
839
839
  exports.deleteImage = deleteImage;
840
840
  /**
841
841
  * Get container image
842
- * Returns detailed information about a container image including all available tags, creation dates, and size information.
842
+ * Returns a bounded image summary starting with API version 2026-09-22. Older versions return the image with all tags.
843
843
  */
844
844
  const getImage = (options) => {
845
845
  return (options.client ?? client_gen_1.client).get({
@@ -909,6 +909,23 @@ const unshareImage = (options) => {
909
909
  });
910
910
  };
911
911
  exports.unshareImage = unshareImage;
912
+ /**
913
+ * List image tags
914
+ * Returns a bounded page of image tags. Search by prefix or exact name. Tags are ordered by name only. Send Blaxel-Version 2026-09-22 with image catalog requests.
915
+ */
916
+ const listImageTags = (options) => {
917
+ return (options.client ?? client_gen_1.client).get({
918
+ security: [
919
+ {
920
+ scheme: 'bearer',
921
+ type: 'http'
922
+ }
923
+ ],
924
+ url: '/images/{resourceType}/{imageName}/tags',
925
+ ...options
926
+ });
927
+ };
928
+ exports.listImageTags = listImageTags;
912
929
  /**
913
930
  * Delete container image tag
914
931
  * Deletes a specific tag from a container image. The underlying image layers are kept if other tags reference them. Will fail if the tag is currently in use.
@@ -1737,7 +1754,7 @@ const archiveSandbox = (options) => {
1737
1754
  exports.archiveSandbox = archiveSandbox;
1738
1755
  /**
1739
1756
  * Fork sandbox
1740
- * Forks a sandbox into a new sandbox or application. When forking to a sandbox, the target must not already exist (409 if it does). When forking to an application, a new revision is added if the app already exists, or a new application is created. This is a WIP endpoint — the full implementation depends on the execution plane.
1757
+ * Forks a sandbox into a new sandbox or application. When forking to a sandbox, the target must not already exist (409 if it does). When forking to an application, a new revision is added if the app already exists, or a new application is created. With no snapshotId, a fork to a sandbox copies the source sandbox's live state directly and no snapshot is persisted, while a fork to an application takes a snapshot its revision then references. This is a WIP endpoint — the full implementation depends on the execution plane.
1741
1758
  */
1742
1759
  const forkSandbox = (options) => {
1743
1760
  return (options.client ?? client_gen_1.client).post({
@@ -2054,7 +2071,7 @@ const createSandboxSnapshot = (options) => {
2054
2071
  exports.createSandboxSnapshot = createSandboxSnapshot;
2055
2072
  /**
2056
2073
  * Delete sandbox snapshot
2057
- * Deletes a snapshot of a sandbox by its ID.
2074
+ * Deletes a snapshot of a sandbox, addressed by its name among that sandbox's snapshots (or by its ID).
2058
2075
  */
2059
2076
  const deleteSandboxSnapshot = (options) => {
2060
2077
  return (options.client ?? client_gen_1.client).delete({
@@ -2359,7 +2376,7 @@ const deleteSnapshot = (options) => {
2359
2376
  exports.deleteSnapshot = deleteSnapshot;
2360
2377
  /**
2361
2378
  * Get snapshot
2362
- * Returns a snapshot of the workspace by name.
2379
+ * Returns a snapshot of the workspace by ID.
2363
2380
  */
2364
2381
  const getSnapshot = (options) => {
2365
2382
  return (options.client ?? client_gen_1.client).get({
@@ -30,10 +30,10 @@ function missingCredentialsMessage() {
30
30
  return "No Blaxel credentials found. Set the BL_API_KEY and BL_WORKSPACE environment variables, or run `bl login`.";
31
31
  }
32
32
  // Build info - these placeholders are replaced at build time by build:replace-imports
33
- const BUILD_VERSION = "0.3.22-preview.299";
34
- const BUILD_COMMIT = "0978bae88a7844ecb221e08137918547b9f0439b";
33
+ const BUILD_VERSION = "0.3.23-preview.301";
34
+ const BUILD_COMMIT = "3f7319f88bf305c481c80932c29c7513c85b543d";
35
35
  const BUILD_SENTRY_DSN = "https://fd5e60e1c9820e1eef5ccebb84a07127@o4508714045276160.ingest.us.sentry.io/4510465864564736";
36
- const BLAXEL_API_VERSION = "2026-04-28";
36
+ const BLAXEL_API_VERSION = "2026-09-22";
37
37
  // Bun < 1.3.11 never sends connection-level WINDOW_UPDATE: the pooled h2
38
38
  // session freezes after exactly 65535 cumulative body bytes and every request
39
39
  // on it hangs until the edge resets the streams (~330s).
@@ -44,10 +44,10 @@ const h2_runtime_js_1 = require("./h2-runtime.js");
44
44
  (0, vitest_1.afterEach)(() => {
45
45
  delete env_js_1.env.BL_API_VERSION;
46
46
  });
47
- (0, vitest_1.it)('defaults to 2026-04-28 when BL_API_VERSION is not set', async () => {
47
+ (0, vitest_1.it)('defaults to 2026-09-22 when BL_API_VERSION is not set', async () => {
48
48
  delete env_js_1.env.BL_API_VERSION;
49
49
  const { settings } = await Promise.resolve().then(() => __importStar(require('./settings.js')));
50
- (0, vitest_1.expect)(settings.apiVersion).toBe('2026-04-28');
50
+ (0, vitest_1.expect)(settings.apiVersion).toBe('2026-09-22');
51
51
  });
52
52
  (0, vitest_1.it)('headers include Blaxel-Version set to the default', async () => {
53
53
  delete env_js_1.env.BL_API_VERSION;
@@ -56,7 +56,7 @@ const h2_runtime_js_1 = require("./h2-runtime.js");
56
56
  const previous = settings.credentials;
57
57
  settings.credentials = new apikey_js_1.ApiKey({ apiKey: 'test-key', workspace: 'test-ws' });
58
58
  try {
59
- (0, vitest_1.expect)(settings.headers['Blaxel-Version']).toBe('2026-04-28');
59
+ (0, vitest_1.expect)(settings.headers['Blaxel-Version']).toBe('2026-09-22');
60
60
  }
61
61
  finally {
62
62
  settings.credentials = previous;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const node_http_1 = require("node:http");
37
+ const vitest_1 = require("vitest");
38
+ const autoload_js_1 = require("../common/autoload.js");
39
+ const settings_js_1 = require("../common/settings.js");
40
+ const image_js_1 = require("./image.js");
41
+ // Exercise the generated client, authentication headers and cursor helpers over HTTP.
42
+ (0, vitest_1.describe)("image pagination HTTP contract", () => {
43
+ let server;
44
+ const requests = [];
45
+ const previousConfig = { ...settings_js_1.settings.config };
46
+ const previousCredentials = settings_js_1.settings.credentials;
47
+ (0, vitest_1.beforeEach)(async () => {
48
+ requests.length = 0;
49
+ server = (0, node_http_1.createServer)((request, response) => {
50
+ const url = new URL(request.url, "http://localhost");
51
+ requests.push({ url, version: request.headers["blaxel-version"] });
52
+ const cursor = url.searchParams.get("cursor");
53
+ const tag = url.pathname.endsWith("/tags");
54
+ const item = tag ? { name: "v2", size: 123 } : { metadata: { name: "example" }, spec: { size: 123, tagCount: 10000 } };
55
+ response.writeHead(200, { "Content-Type": "application/json" });
56
+ response.end(JSON.stringify({
57
+ data: cursor === "empty" ? [] : [item],
58
+ meta: cursor === "end" ? {} : { total: 10000, totalIsPartial: true, hasMore: true, nextCursor: cursor ? "end" : "empty" },
59
+ }));
60
+ });
61
+ await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
62
+ const address = server.address();
63
+ if (!address || typeof address === "string")
64
+ throw new Error("Expected TCP server");
65
+ (0, autoload_js_1.initialize)({ apiKey: "test-key", workspace: "test", disableH2: true });
66
+ const { ensureAutoloaded } = await Promise.resolve().then(() => __importStar(require("../common/lazyInit.js")));
67
+ ensureAutoloaded();
68
+ const { client } = await Promise.resolve().then(() => __importStar(require("../client/client.gen.js")));
69
+ client.setConfig({ baseUrl: `http://127.0.0.1:${address.port}`, fetch });
70
+ });
71
+ (0, vitest_1.afterEach)(async () => {
72
+ settings_js_1.settings.config = previousConfig;
73
+ settings_js_1.settings.credentials = previousCredentials;
74
+ server.closeAllConnections();
75
+ await new Promise((resolve, reject) => server.close((error) => error ? reject(error) : resolve()));
76
+ });
77
+ (0, vitest_1.it)("lists summaries lazily and follows empty pages without fetching tags", async () => {
78
+ const page = await image_js_1.ImageInstance.list({ limit: 1, q: "ex", sort: "name:asc" });
79
+ (0, vitest_1.expect)(requests).toHaveLength(1);
80
+ (0, vitest_1.expect)(page.data[0].spec.tagCount).toBe(10000);
81
+ (0, vitest_1.expect)(page.meta.totalIsPartial).toBe(true);
82
+ const items = await page.autoPagingToArray({ limit: 10 });
83
+ (0, vitest_1.expect)(items).toHaveLength(2);
84
+ (0, vitest_1.expect)(requests.map(({ url }) => url.pathname)).toEqual(["/images", "/images", "/images"]);
85
+ (0, vitest_1.expect)(requests.map(({ url }) => url.searchParams.get("cursor"))).toEqual([null, "empty", "end"]);
86
+ for (const request of requests) {
87
+ (0, vitest_1.expect)(request.version).toBe("2026-09-22");
88
+ (0, vitest_1.expect)(request.url.searchParams.get("q")).toBe("ex");
89
+ (0, vitest_1.expect)(request.url.searchParams.get("limit")).toBe("1");
90
+ (0, vitest_1.expect)(request.url.searchParams.get("sort")).toBe("name:asc");
91
+ }
92
+ });
93
+ (0, vitest_1.it)("preserves shared-owner and tag filters on every page", async () => {
94
+ const page = await image_js_1.ImageInstance.listTags("sandbox", "example", {
95
+ limit: 1, name: "v2", sourceWorkspace: "owner", sort: "name:desc",
96
+ });
97
+ (0, vitest_1.expect)(await page.autoPagingToArray({ limit: 10 })).toHaveLength(2);
98
+ for (const { url } of requests) {
99
+ (0, vitest_1.expect)(url.pathname).toBe("/images/sandbox/example/tags");
100
+ (0, vitest_1.expect)(url.searchParams.get("sourceWorkspace")).toBe("owner");
101
+ (0, vitest_1.expect)(url.searchParams.get("name")).toBe("v2");
102
+ (0, vitest_1.expect)(url.searchParams.get("sort")).toBe("name:desc");
103
+ }
104
+ });
105
+ });
@@ -1,5 +1,5 @@
1
1
  import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
2
- import type { ListAgentsData, CreateAgentData, DeleteAgentData, GetAgentData, UpdateAgentData, ListAgentRevisionsData, ListApplicationsData, CreateApplicationData, DeleteApplicationData, GetApplicationData, UpdateApplicationData, CreateApplicationCustomDomainData, ListApplicationRevisionsData, GetChangelogData, GetConfigurationData, ListCustomDomainsData, CreateCustomDomainData, DeleteCustomDomainData, GetCustomDomainData, UpdateCustomDomainData, ListCustomDomainSharesData, ShareCustomDomainData, UnshareCustomDomainData, VerifyCustomDomainData, ListDrivesData, CreateDriveData, DeleteDriveData, GetDriveData, UpdateDriveData, CreateDriveAccessTokenData, GetDriveByExternalIdData, GetDriveJwksData, ListAllEgressGatewaysData, GetEgressGatewayUsageData, ListAllEgressIpsData, GetWorkspaceFeaturesData, TestFeatureFlagData, ListFunctionsData, CreateFunctionData, DeleteFunctionData, GetFunctionData, UpdateFunctionData, ListFunctionRevisionsData, CleanupImagesData, ListImagesData, CreateImageData, DeleteImageData, GetImageData, ListImageSharesData, ShareImageData, ShareImageResponse, UnshareImageData, DeleteImageTagData, GetIntegrationData, ListIntegrationConnectionsData, CreateIntegrationConnectionData, DeleteIntegrationConnectionData, GetIntegrationConnectionData, UpdateIntegrationConnectionData, GetIntegrationConnectionModelEndpointConfigurationsData, ListIntegrationConnectionModelsData, GetIntegrationConnectionModelData, ListJobsData, CreateJobData, DeleteJobData, GetJobData, UpdateJobData, ListJobExecutionsData, CreateJobExecutionData, DeleteJobExecutionData, GetJobExecutionData, ListJobExecutionTasksData, ListJobRevisionsData, ListLocationsData, ListMcpHubDefinitionsData, ListModelsData, CreateModelData, DeleteModelData, GetModelData, UpdateModelData, ListModelRevisionsData, ListPendingImageSharesData, AcceptImageShareData, DeclineImageShareData, ListPoliciesData, CreatePolicyData, DeletePolicyData, GetPolicyData, UpdatePolicyData, GetPolicyUsagesData, ListPublicIpsData, ListSandboxHubDefinitionsData, ListSandboxesData, CreateSandboxData, DeleteSandboxData, GetSandboxData, UpdateSandboxData, ArchiveSandboxData, ForkSandboxData, ListSandboxPreviewsData, CreateSandboxPreviewData, DeleteSandboxPreviewData, GetSandboxPreviewData, UpdateSandboxPreviewData, ListSandboxPreviewTokensData, CreateSandboxPreviewTokenData, DeleteSandboxPreviewTokenData, ListSandboxScheduleExecutionsData, ListSandboxSchedulesData, CreateSandboxScheduleData, DeleteSandboxScheduleData, GetSandboxScheduleData, UpdateSandboxScheduleData, ListSandboxSnapshotsData, CreateSandboxSnapshotData, DeleteSandboxSnapshotData, RestoreSandboxSnapshotData, UnarchiveSandboxData, GetSandboxByExternalIdData, ListScheduleExecutionsData, ListSchedulesData, GetSandboxScheduleMetricsData, GetWorkspaceServiceAccountsData, CreateWorkspaceServiceAccountData, DeleteWorkspaceServiceAccountData, UpdateWorkspaceServiceAccountData, ListApiKeysForServiceAccountData, CreateApiKeyForServiceAccountData, DeleteApiKeyForServiceAccountData, ListSnapshotsData, CreateSnapshotData, DeleteSnapshotData, GetSnapshotData, ForkSnapshotData, ListTemplatesData, GetTemplateData, ListWorkspaceUsersData, InviteWorkspaceUserData, RemoveWorkspaceUserData, UpdateWorkspaceUserRoleData, ListVolumeTemplatesData, CreateVolumeTemplateData, DeleteVolumeTemplateData, GetVolumeTemplateData, UpdateVolumeTemplateData, DeleteVolumeTemplateVersionData, ListVolumesData, CreateVolumeData, DeleteVolumeData, GetVolumeData, UpdateVolumeData, GetVolumeByExternalIdData, ListVpcsData, CreateVpcData, DeleteVpcData, GetVpcData, ListEgressGatewaysData, CreateEgressGatewayData, DeleteEgressGatewayData, GetEgressGatewayData, ListEgressIpsData, CreateEgressIpData, DeleteEgressIpData, GetEgressIpData, ListWorkspacesData, CreateWorkspaceData, DeleteWorkspaceData, GetWorkspaceData, UpdateWorkspaceData, LeaveWorkspaceData, CheckWorkspaceAvailabilityData } from './types.gen.js';
2
+ import type { ListAgentsData, CreateAgentData, DeleteAgentData, GetAgentData, UpdateAgentData, ListAgentRevisionsData, ListApplicationsData, CreateApplicationData, DeleteApplicationData, GetApplicationData, UpdateApplicationData, CreateApplicationCustomDomainData, ListApplicationRevisionsData, GetChangelogData, GetConfigurationData, ListCustomDomainsData, CreateCustomDomainData, DeleteCustomDomainData, GetCustomDomainData, UpdateCustomDomainData, ListCustomDomainSharesData, ShareCustomDomainData, UnshareCustomDomainData, VerifyCustomDomainData, ListDrivesData, CreateDriveData, DeleteDriveData, GetDriveData, UpdateDriveData, CreateDriveAccessTokenData, GetDriveByExternalIdData, GetDriveJwksData, ListAllEgressGatewaysData, GetEgressGatewayUsageData, ListAllEgressIpsData, GetWorkspaceFeaturesData, TestFeatureFlagData, ListFunctionsData, CreateFunctionData, DeleteFunctionData, GetFunctionData, UpdateFunctionData, ListFunctionRevisionsData, CleanupImagesData, ListImagesData, CreateImageData, DeleteImageData, GetImageData, ListImageSharesData, ShareImageData, ShareImageResponse, UnshareImageData, ListImageTagsData, DeleteImageTagData, DeleteImageTagResponse, GetIntegrationData, ListIntegrationConnectionsData, CreateIntegrationConnectionData, DeleteIntegrationConnectionData, GetIntegrationConnectionData, UpdateIntegrationConnectionData, GetIntegrationConnectionModelEndpointConfigurationsData, ListIntegrationConnectionModelsData, GetIntegrationConnectionModelData, ListJobsData, CreateJobData, DeleteJobData, GetJobData, UpdateJobData, ListJobExecutionsData, CreateJobExecutionData, DeleteJobExecutionData, GetJobExecutionData, ListJobExecutionTasksData, ListJobRevisionsData, ListLocationsData, ListMcpHubDefinitionsData, ListModelsData, CreateModelData, DeleteModelData, GetModelData, UpdateModelData, ListModelRevisionsData, ListPendingImageSharesData, AcceptImageShareData, DeclineImageShareData, ListPoliciesData, CreatePolicyData, DeletePolicyData, GetPolicyData, UpdatePolicyData, GetPolicyUsagesData, ListPublicIpsData, ListSandboxHubDefinitionsData, ListSandboxesData, CreateSandboxData, DeleteSandboxData, GetSandboxData, UpdateSandboxData, ArchiveSandboxData, ForkSandboxData, ListSandboxPreviewsData, CreateSandboxPreviewData, DeleteSandboxPreviewData, GetSandboxPreviewData, UpdateSandboxPreviewData, ListSandboxPreviewTokensData, CreateSandboxPreviewTokenData, DeleteSandboxPreviewTokenData, ListSandboxScheduleExecutionsData, ListSandboxSchedulesData, CreateSandboxScheduleData, DeleteSandboxScheduleData, GetSandboxScheduleData, UpdateSandboxScheduleData, ListSandboxSnapshotsData, CreateSandboxSnapshotData, DeleteSandboxSnapshotData, RestoreSandboxSnapshotData, UnarchiveSandboxData, GetSandboxByExternalIdData, ListScheduleExecutionsData, ListSchedulesData, GetSandboxScheduleMetricsData, GetWorkspaceServiceAccountsData, CreateWorkspaceServiceAccountData, DeleteWorkspaceServiceAccountData, UpdateWorkspaceServiceAccountData, ListApiKeysForServiceAccountData, CreateApiKeyForServiceAccountData, DeleteApiKeyForServiceAccountData, ListSnapshotsData, CreateSnapshotData, DeleteSnapshotData, GetSnapshotData, ForkSnapshotData, ListTemplatesData, GetTemplateData, ListWorkspaceUsersData, InviteWorkspaceUserData, RemoveWorkspaceUserData, UpdateWorkspaceUserRoleData, ListVolumeTemplatesData, CreateVolumeTemplateData, DeleteVolumeTemplateData, GetVolumeTemplateData, UpdateVolumeTemplateData, DeleteVolumeTemplateVersionData, ListVolumesData, CreateVolumeData, DeleteVolumeData, GetVolumeData, UpdateVolumeData, GetVolumeByExternalIdData, ListVpcsData, CreateVpcData, DeleteVpcData, GetVpcData, ListEgressGatewaysData, CreateEgressGatewayData, DeleteEgressGatewayData, GetEgressGatewayData, ListEgressIpsData, CreateEgressIpData, DeleteEgressIpData, GetEgressIpData, ListWorkspacesData, CreateWorkspaceData, DeleteWorkspaceData, GetWorkspaceData, UpdateWorkspaceData, LeaveWorkspaceData, CheckWorkspaceAvailabilityData } from './types.gen.js';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -139,11 +139,12 @@ export declare const listDrives: <ThrowOnError extends boolean = false>(options?
139
139
  export declare const createDrive: <ThrowOnError extends boolean = false>(options: Options<CreateDriveData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Drive, unknown, ThrowOnError>;
140
140
  /**
141
141
  * Delete a drive
142
- * Deletes a drive immediately. The drive record is removed from the database synchronously.
142
+ * Starts the deletion of a drive. The drive is marked DELETING and its storage is wiped asynchronously; the drive disappears from listings once the cleanup completes.
143
143
  */
144
144
  export declare const deleteDrive: <ThrowOnError extends boolean = false>(options: Options<DeleteDriveData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
145
145
  message?: string;
146
146
  name?: string;
147
+ status?: string;
147
148
  }, unknown, ThrowOnError>;
148
149
  /**
149
150
  * Get a drive
@@ -253,9 +254,12 @@ export declare const cleanupImages: <ThrowOnError extends boolean = false>(optio
253
254
  }, unknown, ThrowOnError>;
254
255
  /**
255
256
  * List container images
256
- * Returns all container images stored in the workspace registry, grouped by repository with their available tags. Images are created during deployments of agents, functions, sandboxes, and jobs.
257
+ * Returns paginated image summaries starting with API version 2026-09-22. Older versions return a bare array including all tags.
257
258
  */
258
- export declare const listImages: <ThrowOnError extends boolean = false>(options?: Options<ListImagesData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Image[], unknown, ThrowOnError>;
259
+ export declare const listImages: <ThrowOnError extends boolean = false>(options?: Options<ListImagesData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
260
+ data: Array<import("./types.gen.js").ImageSummary>;
261
+ meta: import("./types.gen.js").PaginationMeta;
262
+ }, unknown, ThrowOnError>;
259
263
  /**
260
264
  * Build a container image
261
265
  * Builds a container image without creating a deployment. Returns a presigned URL for uploading source code. After upload, the image will be built and stored in the registry, but no agent, function, sandbox, or job will be created or updated.
@@ -273,9 +277,9 @@ export declare const createImage: <ThrowOnError extends boolean = false>(options
273
277
  export declare const deleteImage: <ThrowOnError extends boolean = false>(options: Options<DeleteImageData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Image, unknown, ThrowOnError>;
274
278
  /**
275
279
  * Get container image
276
- * Returns detailed information about a container image including all available tags, creation dates, and size information.
280
+ * Returns a bounded image summary starting with API version 2026-09-22. Older versions return the image with all tags.
277
281
  */
278
- export declare const getImage: <ThrowOnError extends boolean = false>(options: Options<GetImageData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Image, unknown, ThrowOnError>;
282
+ export declare const getImage: <ThrowOnError extends boolean = false>(options: Options<GetImageData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").ImageSummary, unknown, ThrowOnError>;
279
283
  /**
280
284
  * List image shares
281
285
  * Returns the list of workspaces that a container image is currently shared with.
@@ -291,11 +295,19 @@ export declare const shareImage: <ThrowOnError extends boolean = false>(options:
291
295
  * Revokes sharing of a container image with a target workspace. Removes the metadata copy from the target workspace. The source image is not affected.
292
296
  */
293
297
  export declare const unshareImage: <ThrowOnError extends boolean = false>(options: Options<UnshareImageData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Image, unknown, ThrowOnError>;
298
+ /**
299
+ * List image tags
300
+ * Returns a bounded page of image tags. Search by prefix or exact name. Tags are ordered by name only. Send Blaxel-Version 2026-09-22 with image catalog requests.
301
+ */
302
+ export declare const listImageTags: <ThrowOnError extends boolean = false>(options: Options<ListImageTagsData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<{
303
+ data: Array<import("./types.gen.js").ImageTag>;
304
+ meta: import("./types.gen.js").PaginationMeta;
305
+ }, unknown, ThrowOnError>;
294
306
  /**
295
307
  * Delete container image tag
296
308
  * Deletes a specific tag from a container image. The underlying image layers are kept if other tags reference them. Will fail if the tag is currently in use.
297
309
  */
298
- export declare const deleteImageTag: <ThrowOnError extends boolean = false>(options: Options<DeleteImageTagData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Image, unknown, ThrowOnError>;
310
+ export declare const deleteImageTag: <ThrowOnError extends boolean = false>(options: Options<DeleteImageTagData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<DeleteImageTagResponse, unknown, ThrowOnError>;
299
311
  /**
300
312
  * Get integration provider info
301
313
  * Returns metadata about an integration provider including available endpoints, authentication methods, and supported models or features.
@@ -523,7 +535,7 @@ export declare const updateSandbox: <ThrowOnError extends boolean = false>(optio
523
535
  export declare const archiveSandbox: <ThrowOnError extends boolean = false>(options: Options<ArchiveSandboxData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").Sandbox, import("./types.gen.js")._Error, ThrowOnError>;
524
536
  /**
525
537
  * Fork sandbox
526
- * Forks a sandbox into a new sandbox or application. When forking to a sandbox, the target must not already exist (409 if it does). When forking to an application, a new revision is added if the app already exists, or a new application is created. This is a WIP endpoint — the full implementation depends on the execution plane.
538
+ * Forks a sandbox into a new sandbox or application. When forking to a sandbox, the target must not already exist (409 if it does). When forking to an application, a new revision is added if the app already exists, or a new application is created. With no snapshotId, a fork to a sandbox copies the source sandbox's live state directly and no snapshot is persisted, while a fork to an application takes a snapshot its revision then references. This is a WIP endpoint — the full implementation depends on the execution plane.
527
539
  */
528
540
  export declare const forkSandbox: <ThrowOnError extends boolean = false>(options: Options<ForkSandboxData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").SandboxForkResponse, import("./types.gen.js")._Error, ThrowOnError>;
529
541
  /**
@@ -610,7 +622,7 @@ export declare const listSandboxSnapshots: <ThrowOnError extends boolean = false
610
622
  export declare const createSandboxSnapshot: <ThrowOnError extends boolean = false>(options: Options<CreateSandboxSnapshotData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").SandboxSnapshot, import("./types.gen.js")._Error, ThrowOnError>;
611
623
  /**
612
624
  * Delete sandbox snapshot
613
- * Deletes a snapshot of a sandbox by its ID.
625
+ * Deletes a snapshot of a sandbox, addressed by its name among that sandbox's snapshots (or by its ID).
614
626
  */
615
627
  export declare const deleteSandboxSnapshot: <ThrowOnError extends boolean = false>(options: Options<DeleteSandboxSnapshotData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<void, import("./types.gen.js")._Error, ThrowOnError>;
616
628
  /**
@@ -720,7 +732,7 @@ export declare const createSnapshot: <ThrowOnError extends boolean = false>(opti
720
732
  export declare const deleteSnapshot: <ThrowOnError extends boolean = false>(options: Options<DeleteSnapshotData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<void, import("./types.gen.js")._Error, ThrowOnError>;
721
733
  /**
722
734
  * Get snapshot
723
- * Returns a snapshot of the workspace by name.
735
+ * Returns a snapshot of the workspace by ID.
724
736
  */
725
737
  export declare const getSnapshot: <ThrowOnError extends boolean = false>(options: Options<GetSnapshotData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen.js").SandboxSnapshot, import("./types.gen.js")._Error, ThrowOnError>;
726
738
  /**