@agentuity/server 0.1.10 → 0.1.11
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.
- package/dist/api/sandbox/index.d.ts +4 -2
- package/dist/api/sandbox/index.d.ts.map +1 -1
- package/dist/api/sandbox/index.js +2 -1
- package/dist/api/sandbox/index.js.map +1 -1
- package/dist/api/sandbox/snapshot-build.d.ts +31 -0
- package/dist/api/sandbox/snapshot-build.d.ts.map +1 -0
- package/dist/api/sandbox/snapshot-build.js +48 -0
- package/dist/api/sandbox/snapshot-build.js.map +1 -0
- package/dist/api/sandbox/snapshot.d.ts +129 -47
- package/dist/api/sandbox/snapshot.d.ts.map +1 -1
- package/dist/api/sandbox/snapshot.js +146 -0
- package/dist/api/sandbox/snapshot.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/package.json +4 -4
- package/src/api/sandbox/index.ts +14 -1
- package/src/api/sandbox/snapshot-build.ts +62 -0
- package/src/api/sandbox/snapshot.ts +179 -48
- package/src/config.ts +1 -1
|
@@ -19,6 +19,8 @@ export { SandboxClient } from './client';
|
|
|
19
19
|
export type { SandboxClientOptions, SandboxInstance, ExecuteOptions } from './client';
|
|
20
20
|
export { sandboxWriteFiles, sandboxReadFile, sandboxMkDir, sandboxRmDir, sandboxRmFile, sandboxListFiles, sandboxDownloadArchive, sandboxUploadArchive, sandboxSetEnv, } from './files';
|
|
21
21
|
export type { WriteFilesParams, WriteFilesResult, ReadFileParams, MkDirParams, RmDirParams, RmFileParams, ListFilesParams, ListFilesResult, FileInfo, ArchiveFormat, DownloadArchiveParams, UploadArchiveParams, SetEnvParams, SetEnvResult, } from './files';
|
|
22
|
-
export { snapshotCreate, snapshotGet, snapshotList, snapshotDelete, snapshotTag } from './snapshot';
|
|
23
|
-
export type { SnapshotInfo, SnapshotFileInfo, SnapshotCreateParams, SnapshotGetParams, SnapshotListParams, SnapshotListResponse, SnapshotDeleteParams, SnapshotTagParams, } from './snapshot';
|
|
22
|
+
export { snapshotCreate, snapshotGet, snapshotList, snapshotDelete, snapshotTag, snapshotBuildInit, snapshotBuildFinalize, } from './snapshot';
|
|
23
|
+
export type { SnapshotInfo, SnapshotFileInfo, SnapshotCreateParams, SnapshotGetParams, SnapshotListParams, SnapshotListResponse, SnapshotDeleteParams, SnapshotTagParams, SnapshotBuildInitParams, SnapshotBuildInitResponse, SnapshotBuildFinalizeParams, } from './snapshot';
|
|
24
|
+
export { SnapshotBuildFileSchema } from './snapshot-build';
|
|
25
|
+
export type { SnapshotBuildFile } from './snapshot-build';
|
|
24
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,cAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -9,5 +9,6 @@ export { executionGet, executionList } from './execution';
|
|
|
9
9
|
export { SandboxResponseError, writeAndDrain } from './util';
|
|
10
10
|
export { SandboxClient } from './client';
|
|
11
11
|
export { sandboxWriteFiles, sandboxReadFile, sandboxMkDir, sandboxRmDir, sandboxRmFile, sandboxListFiles, sandboxDownloadArchive, sandboxUploadArchive, sandboxSetEnv, } from './files';
|
|
12
|
-
export { snapshotCreate, snapshotGet, snapshotList, snapshotDelete, snapshotTag } from './snapshot';
|
|
12
|
+
export { snapshotCreate, snapshotGet, snapshotList, snapshotDelete, snapshotTag, snapshotBuildInit, snapshotBuildFinalize, } from './snapshot';
|
|
13
|
+
export { SnapshotBuildFileSchema } from './snapshot-build';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,GACb,MAAM,SAAS,CAAC;AAiBjB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,GACb,MAAM,SAAS,CAAC;AAiBjB,OAAO,EACN,cAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,YAAY,CAAC;AAcpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Base schema for snapshot build configuration file (agentuity-snapshot.yaml)
|
|
4
|
+
* This is the canonical schema - used for JSON Schema generation.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SnapshotBuildFileBaseSchema: z.ZodObject<{
|
|
7
|
+
version: z.ZodLiteral<1>;
|
|
8
|
+
runtime: z.ZodString;
|
|
9
|
+
name: z.ZodOptional<z.ZodString>;
|
|
10
|
+
description: z.ZodOptional<z.ZodString>;
|
|
11
|
+
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
12
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
14
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
/**
|
|
17
|
+
* Schema with validation refinement - use this for parsing/validation.
|
|
18
|
+
* Ensures at least one of dependencies, files, or env is specified.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SnapshotBuildFileSchema: z.ZodObject<{
|
|
21
|
+
version: z.ZodLiteral<1>;
|
|
22
|
+
runtime: z.ZodString;
|
|
23
|
+
name: z.ZodOptional<z.ZodString>;
|
|
24
|
+
description: z.ZodOptional<z.ZodString>;
|
|
25
|
+
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
28
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type SnapshotBuildFile = z.infer<typeof SnapshotBuildFileSchema>;
|
|
31
|
+
//# sourceMappingURL=snapshot-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-build.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;iBAqCgD,CAAC;AAEzF;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;iBAUnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Base schema for snapshot build configuration file (agentuity-snapshot.yaml)
|
|
4
|
+
* This is the canonical schema - used for JSON Schema generation.
|
|
5
|
+
*/
|
|
6
|
+
export const SnapshotBuildFileBaseSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
version: z.literal(1).describe('Schema version, must be 1'),
|
|
9
|
+
runtime: z
|
|
10
|
+
.string()
|
|
11
|
+
.describe('Runtime identifier (name:tag format, e.g., bun:1, node:20, python:3.12)'),
|
|
12
|
+
name: z
|
|
13
|
+
.string()
|
|
14
|
+
.regex(/^[a-zA-Z0-9_-]+$/)
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Snapshot name (alphanumeric, underscores, dashes only)'),
|
|
17
|
+
description: z.string().optional().describe('Human-readable description of the snapshot'),
|
|
18
|
+
dependencies: z
|
|
19
|
+
.array(z.string())
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('List of apt packages to install. Supports version pinning: package=version or package=version* for prefix matching'),
|
|
22
|
+
files: z
|
|
23
|
+
.array(z.string())
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Glob patterns for files to include from the build context. Supports negative patterns with ! prefix for exclusions'),
|
|
26
|
+
env: z
|
|
27
|
+
.record(z.string(), z.string())
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('Environment variables to set. Use ${VAR} syntax for build-time substitution via --env flag'),
|
|
30
|
+
metadata: z
|
|
31
|
+
.record(z.string(), z.string())
|
|
32
|
+
.optional()
|
|
33
|
+
.describe('User-defined metadata key-value pairs. Use ${VAR} syntax for build-time substitution via --metadata flag'),
|
|
34
|
+
})
|
|
35
|
+
.describe('Agentuity Snapshot Build File - defines a reproducible sandbox environment');
|
|
36
|
+
/**
|
|
37
|
+
* Schema with validation refinement - use this for parsing/validation.
|
|
38
|
+
* Ensures at least one of dependencies, files, or env is specified.
|
|
39
|
+
*/
|
|
40
|
+
export const SnapshotBuildFileSchema = SnapshotBuildFileBaseSchema.refine((data) => {
|
|
41
|
+
const hasDependencies = data.dependencies && data.dependencies.length > 0;
|
|
42
|
+
const hasFiles = data.files && data.files.length > 0;
|
|
43
|
+
const hasEnv = data.env && Object.keys(data.env).length > 0;
|
|
44
|
+
return hasDependencies || hasFiles || hasEnv;
|
|
45
|
+
}, {
|
|
46
|
+
message: 'At least one of dependencies, files, or env must be specified',
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=snapshot-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-build.js","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,yEAAyE,CAAC;IACrF,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,KAAK,CAAC,kBAAkB,CAAC;SACzB,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACzF,YAAY,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACR,oHAAoH,CACpH;IACF,KAAK,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACR,oHAAoH,CACpH;IACF,GAAG,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,CACR,4FAA4F,CAC5F;IACF,QAAQ,EAAE,CAAC;SACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,CACR,0GAA0G,CAC1G;CACF,CAAC;KACD,QAAQ,CAAC,4EAA4E,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,MAAM,CACxE,CAAC,IAAI,EAAE,EAAE;IACR,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,OAAO,eAAe,IAAI,QAAQ,IAAI,MAAM,CAAC;AAC9C,CAAC,EACD;IACC,OAAO,EAAE,+DAA+D;CACxE,CACD,CAAC"}
|
|
@@ -1,51 +1,80 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { APIClient } from '../api';
|
|
2
|
-
|
|
3
|
-
path:
|
|
4
|
-
size:
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
snapshotId:
|
|
8
|
-
runtimeId
|
|
9
|
-
name:
|
|
10
|
-
description
|
|
11
|
-
tag
|
|
12
|
-
sizeBytes:
|
|
13
|
-
fileCount:
|
|
14
|
-
parentSnapshotId
|
|
15
|
-
createdAt:
|
|
16
|
-
downloadUrl
|
|
17
|
-
files
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
3
|
+
declare const SnapshotFileInfoSchema: z.ZodObject<{
|
|
4
|
+
path: z.ZodString;
|
|
5
|
+
size: z.ZodNumber;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
declare const SnapshotInfoSchema: z.ZodObject<{
|
|
8
|
+
snapshotId: z.ZodString;
|
|
9
|
+
runtimeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12
|
+
tag: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13
|
+
sizeBytes: z.ZodNumber;
|
|
14
|
+
fileCount: z.ZodNumber;
|
|
15
|
+
parentSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
|
+
createdAt: z.ZodString;
|
|
17
|
+
downloadUrl: z.ZodOptional<z.ZodString>;
|
|
18
|
+
files: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
19
|
+
path: z.ZodString;
|
|
20
|
+
size: z.ZodNumber;
|
|
21
|
+
}, z.core.$strip>>>>;
|
|
22
|
+
userMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
declare const SnapshotListDataSchema: z.ZodObject<{
|
|
25
|
+
snapshots: z.ZodArray<z.ZodObject<{
|
|
26
|
+
snapshotId: z.ZodString;
|
|
27
|
+
runtimeId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
name: z.ZodString;
|
|
29
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
tag: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
sizeBytes: z.ZodNumber;
|
|
32
|
+
fileCount: z.ZodNumber;
|
|
33
|
+
parentSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
34
|
+
createdAt: z.ZodString;
|
|
35
|
+
downloadUrl: z.ZodOptional<z.ZodString>;
|
|
36
|
+
files: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
37
|
+
path: z.ZodString;
|
|
38
|
+
size: z.ZodNumber;
|
|
39
|
+
}, z.core.$strip>>>>;
|
|
40
|
+
userMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
total: z.ZodNumber;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
export type SnapshotFileInfo = z.infer<typeof SnapshotFileInfoSchema>;
|
|
45
|
+
export type SnapshotInfo = z.infer<typeof SnapshotInfoSchema>;
|
|
46
|
+
export type SnapshotListResponse = z.infer<typeof SnapshotListDataSchema>;
|
|
47
|
+
declare const _SnapshotCreateParamsSchema: z.ZodObject<{
|
|
48
|
+
sandboxId: z.ZodString;
|
|
49
|
+
name: z.ZodOptional<z.ZodString>;
|
|
50
|
+
description: z.ZodOptional<z.ZodString>;
|
|
51
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
52
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
declare const _SnapshotGetParamsSchema: z.ZodObject<{
|
|
55
|
+
snapshotId: z.ZodString;
|
|
56
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
declare const _SnapshotListParamsSchema: z.ZodObject<{
|
|
59
|
+
sandboxId: z.ZodOptional<z.ZodString>;
|
|
60
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
declare const _SnapshotDeleteParamsSchema: z.ZodObject<{
|
|
65
|
+
snapshotId: z.ZodString;
|
|
66
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
declare const _SnapshotTagParamsSchema: z.ZodObject<{
|
|
69
|
+
snapshotId: z.ZodString;
|
|
70
|
+
tag: z.ZodNullable<z.ZodString>;
|
|
71
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export type SnapshotCreateParams = z.infer<typeof _SnapshotCreateParamsSchema>;
|
|
74
|
+
export type SnapshotGetParams = z.infer<typeof _SnapshotGetParamsSchema>;
|
|
75
|
+
export type SnapshotListParams = z.infer<typeof _SnapshotListParamsSchema>;
|
|
76
|
+
export type SnapshotDeleteParams = z.infer<typeof _SnapshotDeleteParamsSchema>;
|
|
77
|
+
export type SnapshotTagParams = z.infer<typeof _SnapshotTagParamsSchema>;
|
|
49
78
|
/**
|
|
50
79
|
* Creates a snapshot of a sandbox's current state.
|
|
51
80
|
*
|
|
@@ -90,4 +119,57 @@ export declare function snapshotDelete(client: APIClient, params: SnapshotDelete
|
|
|
90
119
|
* @throws {SandboxResponseError} If the snapshot is not found or update fails
|
|
91
120
|
*/
|
|
92
121
|
export declare function snapshotTag(client: APIClient, params: SnapshotTagParams): Promise<SnapshotInfo>;
|
|
122
|
+
declare const _SnapshotBuildInitParamsSchema: z.ZodObject<{
|
|
123
|
+
runtime: z.ZodString;
|
|
124
|
+
name: z.ZodOptional<z.ZodString>;
|
|
125
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
126
|
+
description: z.ZodOptional<z.ZodString>;
|
|
127
|
+
contentHash: z.ZodOptional<z.ZodString>;
|
|
128
|
+
force: z.ZodOptional<z.ZodBoolean>;
|
|
129
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
declare const SnapshotBuildInitResponseSchema: z.ZodObject<{
|
|
132
|
+
snapshotId: z.ZodOptional<z.ZodString>;
|
|
133
|
+
uploadUrl: z.ZodOptional<z.ZodString>;
|
|
134
|
+
s3Key: z.ZodOptional<z.ZodString>;
|
|
135
|
+
unchanged: z.ZodOptional<z.ZodBoolean>;
|
|
136
|
+
existingId: z.ZodOptional<z.ZodString>;
|
|
137
|
+
existingName: z.ZodOptional<z.ZodString>;
|
|
138
|
+
existingTag: z.ZodOptional<z.ZodString>;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
declare const _SnapshotBuildFinalizeParamsSchema: z.ZodObject<{
|
|
141
|
+
snapshotId: z.ZodString;
|
|
142
|
+
sizeBytes: z.ZodNumber;
|
|
143
|
+
fileCount: z.ZodNumber;
|
|
144
|
+
files: z.ZodArray<z.ZodObject<{
|
|
145
|
+
path: z.ZodString;
|
|
146
|
+
size: z.ZodNumber;
|
|
147
|
+
}, z.core.$strip>>;
|
|
148
|
+
dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
149
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
150
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
151
|
+
orgId: z.ZodOptional<z.ZodString>;
|
|
152
|
+
}, z.core.$strip>;
|
|
153
|
+
export type SnapshotBuildInitParams = z.infer<typeof _SnapshotBuildInitParamsSchema>;
|
|
154
|
+
export type SnapshotBuildInitResponse = z.infer<typeof SnapshotBuildInitResponseSchema>;
|
|
155
|
+
export type SnapshotBuildFinalizeParams = z.infer<typeof _SnapshotBuildFinalizeParamsSchema>;
|
|
156
|
+
/**
|
|
157
|
+
* Initialize a snapshot build by getting a presigned upload URL.
|
|
158
|
+
*
|
|
159
|
+
* @param client - The API client to use for the request
|
|
160
|
+
* @param params - Parameters including runtime and optional name/tag/description
|
|
161
|
+
* @returns Snapshot ID and presigned upload URL
|
|
162
|
+
* @throws {SandboxResponseError} If the initialization fails
|
|
163
|
+
*/
|
|
164
|
+
export declare function snapshotBuildInit(client: APIClient, params: SnapshotBuildInitParams): Promise<SnapshotBuildInitResponse>;
|
|
165
|
+
/**
|
|
166
|
+
* Finalize a snapshot build after uploading the archive.
|
|
167
|
+
*
|
|
168
|
+
* @param client - The API client to use for the request
|
|
169
|
+
* @param params - Parameters including snapshot details and file metadata
|
|
170
|
+
* @returns The created snapshot information
|
|
171
|
+
* @throws {SandboxResponseError} If the finalization fails
|
|
172
|
+
*/
|
|
173
|
+
export declare function snapshotBuildFinalize(client: APIClient, params: SnapshotBuildFinalizeParams): Promise<SnapshotInfo>;
|
|
174
|
+
export {};
|
|
93
175
|
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,11 @@ const SnapshotInfoSchema = z
|
|
|
34
34
|
.nullable()
|
|
35
35
|
.optional()
|
|
36
36
|
.describe('List of files in the snapshot'),
|
|
37
|
+
userMetadata: z
|
|
38
|
+
.record(z.string(), z.string())
|
|
39
|
+
.nullable()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('User-defined metadata key-value pairs'),
|
|
37
42
|
})
|
|
38
43
|
.describe('Detailed information about a snapshot');
|
|
39
44
|
const SnapshotCreateResponseSchema = APIResponseSchema(SnapshotInfoSchema);
|
|
@@ -46,6 +51,42 @@ const SnapshotListDataSchema = z
|
|
|
46
51
|
.describe('Paginated list of snapshots');
|
|
47
52
|
const SnapshotListResponseSchema = APIResponseSchema(SnapshotListDataSchema);
|
|
48
53
|
const SnapshotDeleteResponseSchema = APIResponseSchemaNoData();
|
|
54
|
+
const _SnapshotCreateParamsSchema = z
|
|
55
|
+
.object({
|
|
56
|
+
sandboxId: z.string().describe('ID of the sandbox to snapshot'),
|
|
57
|
+
name: z.string().optional().describe('Display name for the snapshot'),
|
|
58
|
+
description: z.string().optional().describe('Description of the snapshot'),
|
|
59
|
+
tag: z.string().optional().describe('Tag for the snapshot'),
|
|
60
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
61
|
+
})
|
|
62
|
+
.describe('Parameters for creating a snapshot');
|
|
63
|
+
const _SnapshotGetParamsSchema = z
|
|
64
|
+
.object({
|
|
65
|
+
snapshotId: z.string().describe('ID of the snapshot to retrieve'),
|
|
66
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
67
|
+
})
|
|
68
|
+
.describe('Parameters for getting a snapshot');
|
|
69
|
+
const _SnapshotListParamsSchema = z
|
|
70
|
+
.object({
|
|
71
|
+
sandboxId: z.string().optional().describe('Filter by sandbox ID'),
|
|
72
|
+
limit: z.number().optional().describe('Maximum number of snapshots to return'),
|
|
73
|
+
offset: z.number().optional().describe('Number of snapshots to skip'),
|
|
74
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
75
|
+
})
|
|
76
|
+
.describe('Parameters for listing snapshots');
|
|
77
|
+
const _SnapshotDeleteParamsSchema = z
|
|
78
|
+
.object({
|
|
79
|
+
snapshotId: z.string().describe('ID of the snapshot to delete'),
|
|
80
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
81
|
+
})
|
|
82
|
+
.describe('Parameters for deleting a snapshot');
|
|
83
|
+
const _SnapshotTagParamsSchema = z
|
|
84
|
+
.object({
|
|
85
|
+
snapshotId: z.string().describe('ID of the snapshot to tag'),
|
|
86
|
+
tag: z.string().nullable().describe('New tag (or null to remove)'),
|
|
87
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
88
|
+
})
|
|
89
|
+
.describe('Parameters for tagging a snapshot');
|
|
49
90
|
function buildQueryString(params) {
|
|
50
91
|
const query = new URLSearchParams();
|
|
51
92
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -154,4 +195,109 @@ export async function snapshotTag(client, params) {
|
|
|
154
195
|
}
|
|
155
196
|
throw new SandboxResponseError({ message: resp.message });
|
|
156
197
|
}
|
|
198
|
+
// ===== Snapshot Build API =====
|
|
199
|
+
const _SnapshotBuildInitParamsSchema = z
|
|
200
|
+
.object({
|
|
201
|
+
runtime: z.string().describe('Runtime identifier (name:tag or runtime ID)'),
|
|
202
|
+
name: z.string().optional().describe('Display name for the snapshot'),
|
|
203
|
+
tag: z.string().optional().describe('Tag for the snapshot'),
|
|
204
|
+
description: z.string().optional().describe('Description of the snapshot'),
|
|
205
|
+
contentHash: z.string().optional().describe('SHA-256 hash of snapshot content for change detection'),
|
|
206
|
+
force: z.boolean().optional().describe('Force rebuild even if content is unchanged'),
|
|
207
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
208
|
+
})
|
|
209
|
+
.describe('Parameters for initializing a snapshot build');
|
|
210
|
+
const SnapshotBuildInitResponseSchema = z
|
|
211
|
+
.object({
|
|
212
|
+
snapshotId: z.string().optional().describe('Unique identifier for the snapshot being built'),
|
|
213
|
+
uploadUrl: z.string().optional().describe('Pre-signed URL for uploading the snapshot archive'),
|
|
214
|
+
s3Key: z.string().optional().describe('S3 key where the snapshot will be stored'),
|
|
215
|
+
unchanged: z.boolean().optional().describe('True if snapshot content is unchanged'),
|
|
216
|
+
existingId: z.string().optional().describe('ID of existing unchanged snapshot'),
|
|
217
|
+
existingName: z.string().optional().describe('Name of existing unchanged snapshot'),
|
|
218
|
+
existingTag: z.string().optional().describe('Tag of existing unchanged snapshot'),
|
|
219
|
+
})
|
|
220
|
+
.describe('Response from snapshot build init API');
|
|
221
|
+
const SnapshotBuildInitAPIResponseSchema = APIResponseSchema(SnapshotBuildInitResponseSchema);
|
|
222
|
+
const _SnapshotBuildFinalizeParamsSchema = z
|
|
223
|
+
.object({
|
|
224
|
+
snapshotId: z.string().describe('Snapshot ID from init response'),
|
|
225
|
+
sizeBytes: z.number().describe('Total size of the snapshot in bytes'),
|
|
226
|
+
fileCount: z.number().describe('Number of files in the snapshot'),
|
|
227
|
+
files: z
|
|
228
|
+
.array(SnapshotFileInfoSchema)
|
|
229
|
+
.describe('List of files with path and size'),
|
|
230
|
+
dependencies: z
|
|
231
|
+
.array(z.string())
|
|
232
|
+
.optional()
|
|
233
|
+
.describe('List of apt packages to install'),
|
|
234
|
+
env: z
|
|
235
|
+
.record(z.string(), z.string())
|
|
236
|
+
.optional()
|
|
237
|
+
.describe('Environment variables to set'),
|
|
238
|
+
metadata: z
|
|
239
|
+
.record(z.string(), z.string())
|
|
240
|
+
.optional()
|
|
241
|
+
.describe('User-defined metadata key-value pairs'),
|
|
242
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
243
|
+
})
|
|
244
|
+
.describe('Parameters for finalizing a snapshot build');
|
|
245
|
+
/**
|
|
246
|
+
* Initialize a snapshot build by getting a presigned upload URL.
|
|
247
|
+
*
|
|
248
|
+
* @param client - The API client to use for the request
|
|
249
|
+
* @param params - Parameters including runtime and optional name/tag/description
|
|
250
|
+
* @returns Snapshot ID and presigned upload URL
|
|
251
|
+
* @throws {SandboxResponseError} If the initialization fails
|
|
252
|
+
*/
|
|
253
|
+
export async function snapshotBuildInit(client, params) {
|
|
254
|
+
const { runtime, name, description, tag, contentHash, force, orgId } = params;
|
|
255
|
+
const queryString = buildQueryString({ orgId });
|
|
256
|
+
const url = `/sandbox/${API_VERSION}/snapshots/build${queryString}`;
|
|
257
|
+
const body = { runtime };
|
|
258
|
+
if (name)
|
|
259
|
+
body.name = name;
|
|
260
|
+
if (description)
|
|
261
|
+
body.description = description;
|
|
262
|
+
if (tag)
|
|
263
|
+
body.tag = tag;
|
|
264
|
+
if (contentHash)
|
|
265
|
+
body.contentHash = contentHash;
|
|
266
|
+
if (force)
|
|
267
|
+
body.force = force;
|
|
268
|
+
const resp = await client.post(url, body, SnapshotBuildInitAPIResponseSchema);
|
|
269
|
+
if (resp.success) {
|
|
270
|
+
return resp.data;
|
|
271
|
+
}
|
|
272
|
+
throw new SandboxResponseError({ message: resp.message });
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Finalize a snapshot build after uploading the archive.
|
|
276
|
+
*
|
|
277
|
+
* @param client - The API client to use for the request
|
|
278
|
+
* @param params - Parameters including snapshot details and file metadata
|
|
279
|
+
* @returns The created snapshot information
|
|
280
|
+
* @throws {SandboxResponseError} If the finalization fails
|
|
281
|
+
*/
|
|
282
|
+
export async function snapshotBuildFinalize(client, params) {
|
|
283
|
+
const { snapshotId, sizeBytes, fileCount, files, dependencies, env, metadata, orgId } = params;
|
|
284
|
+
const queryString = buildQueryString({ orgId });
|
|
285
|
+
const url = `/sandbox/${API_VERSION}/snapshots/${snapshotId}/finalize${queryString}`;
|
|
286
|
+
const body = {
|
|
287
|
+
sizeBytes,
|
|
288
|
+
fileCount,
|
|
289
|
+
files,
|
|
290
|
+
};
|
|
291
|
+
if (dependencies)
|
|
292
|
+
body.dependencies = dependencies;
|
|
293
|
+
if (env)
|
|
294
|
+
body.env = env;
|
|
295
|
+
if (metadata)
|
|
296
|
+
body.metadata = metadata;
|
|
297
|
+
const resp = await client.post(url, body, SnapshotGetResponseSchema);
|
|
298
|
+
if (resp.success) {
|
|
299
|
+
return resp.data;
|
|
300
|
+
}
|
|
301
|
+
throw new SandboxResponseError({ message: resp.message });
|
|
302
|
+
}
|
|
157
303
|
//# sourceMappingURL=snapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/api/sandbox/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACd,mHAAmH,CACnH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC7C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,YAAY,GACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAErF,OAAO;QACN,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,YAAY;QAC5D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC;QACvF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,YAAY;QACxD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,YAAY;QAC5D,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC;QAChF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY;KAC1D,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACvC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACd,mHAAmH,CACnH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC7C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,YAAY,GACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAErF,OAAO;QACN,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,YAAY;QAC5D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC;QACvF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,YAAY;QACxD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,YAAY;QAC5D,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC;QAChF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY;KAC1D,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACvC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe,EAAE,QAAiB;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,WAAW,QAAQ,IAAI,MAAM,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,WAAW,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"prepublishOnly": "bun run clean && bun run build"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@agentuity/core": "0.1.
|
|
29
|
-
"@agentuity/schema": "0.1.
|
|
28
|
+
"@agentuity/core": "0.1.11",
|
|
29
|
+
"@agentuity/schema": "0.1.11",
|
|
30
30
|
"zod": "^4.3.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@agentuity/test-utils": "0.1.
|
|
33
|
+
"@agentuity/test-utils": "0.1.11",
|
|
34
34
|
"@types/bun": "latest",
|
|
35
35
|
"@types/node": "^22.0.0",
|
|
36
36
|
"bun-types": "latest",
|
package/src/api/sandbox/index.ts
CHANGED
|
@@ -49,7 +49,15 @@ export type {
|
|
|
49
49
|
SetEnvParams,
|
|
50
50
|
SetEnvResult,
|
|
51
51
|
} from './files';
|
|
52
|
-
export {
|
|
52
|
+
export {
|
|
53
|
+
snapshotCreate,
|
|
54
|
+
snapshotGet,
|
|
55
|
+
snapshotList,
|
|
56
|
+
snapshotDelete,
|
|
57
|
+
snapshotTag,
|
|
58
|
+
snapshotBuildInit,
|
|
59
|
+
snapshotBuildFinalize,
|
|
60
|
+
} from './snapshot';
|
|
53
61
|
export type {
|
|
54
62
|
SnapshotInfo,
|
|
55
63
|
SnapshotFileInfo,
|
|
@@ -59,4 +67,9 @@ export type {
|
|
|
59
67
|
SnapshotListResponse,
|
|
60
68
|
SnapshotDeleteParams,
|
|
61
69
|
SnapshotTagParams,
|
|
70
|
+
SnapshotBuildInitParams,
|
|
71
|
+
SnapshotBuildInitResponse,
|
|
72
|
+
SnapshotBuildFinalizeParams,
|
|
62
73
|
} from './snapshot';
|
|
74
|
+
export { SnapshotBuildFileSchema } from './snapshot-build';
|
|
75
|
+
export type { SnapshotBuildFile } from './snapshot-build';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base schema for snapshot build configuration file (agentuity-snapshot.yaml)
|
|
5
|
+
* This is the canonical schema - used for JSON Schema generation.
|
|
6
|
+
*/
|
|
7
|
+
export const SnapshotBuildFileBaseSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
version: z.literal(1).describe('Schema version, must be 1'),
|
|
10
|
+
runtime: z
|
|
11
|
+
.string()
|
|
12
|
+
.describe('Runtime identifier (name:tag format, e.g., bun:1, node:20, python:3.12)'),
|
|
13
|
+
name: z
|
|
14
|
+
.string()
|
|
15
|
+
.regex(/^[a-zA-Z0-9_-]+$/)
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Snapshot name (alphanumeric, underscores, dashes only)'),
|
|
18
|
+
description: z.string().optional().describe('Human-readable description of the snapshot'),
|
|
19
|
+
dependencies: z
|
|
20
|
+
.array(z.string())
|
|
21
|
+
.optional()
|
|
22
|
+
.describe(
|
|
23
|
+
'List of apt packages to install. Supports version pinning: package=version or package=version* for prefix matching'
|
|
24
|
+
),
|
|
25
|
+
files: z
|
|
26
|
+
.array(z.string())
|
|
27
|
+
.optional()
|
|
28
|
+
.describe(
|
|
29
|
+
'Glob patterns for files to include from the build context. Supports negative patterns with ! prefix for exclusions'
|
|
30
|
+
),
|
|
31
|
+
env: z
|
|
32
|
+
.record(z.string(), z.string())
|
|
33
|
+
.optional()
|
|
34
|
+
.describe(
|
|
35
|
+
'Environment variables to set. Use ${VAR} syntax for build-time substitution via --env flag'
|
|
36
|
+
),
|
|
37
|
+
metadata: z
|
|
38
|
+
.record(z.string(), z.string())
|
|
39
|
+
.optional()
|
|
40
|
+
.describe(
|
|
41
|
+
'User-defined metadata key-value pairs. Use ${VAR} syntax for build-time substitution via --metadata flag'
|
|
42
|
+
),
|
|
43
|
+
})
|
|
44
|
+
.describe('Agentuity Snapshot Build File - defines a reproducible sandbox environment');
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Schema with validation refinement - use this for parsing/validation.
|
|
48
|
+
* Ensures at least one of dependencies, files, or env is specified.
|
|
49
|
+
*/
|
|
50
|
+
export const SnapshotBuildFileSchema = SnapshotBuildFileBaseSchema.refine(
|
|
51
|
+
(data) => {
|
|
52
|
+
const hasDependencies = data.dependencies && data.dependencies.length > 0;
|
|
53
|
+
const hasFiles = data.files && data.files.length > 0;
|
|
54
|
+
const hasEnv = data.env && Object.keys(data.env).length > 0;
|
|
55
|
+
return hasDependencies || hasFiles || hasEnv;
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
message: 'At least one of dependencies, files, or env must be specified',
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
export type SnapshotBuildFile = z.infer<typeof SnapshotBuildFileSchema>;
|
|
@@ -38,6 +38,11 @@ const SnapshotInfoSchema = z
|
|
|
38
38
|
.nullable()
|
|
39
39
|
.optional()
|
|
40
40
|
.describe('List of files in the snapshot'),
|
|
41
|
+
userMetadata: z
|
|
42
|
+
.record(z.string(), z.string())
|
|
43
|
+
.nullable()
|
|
44
|
+
.optional()
|
|
45
|
+
.describe('User-defined metadata key-value pairs'),
|
|
41
46
|
})
|
|
42
47
|
.describe('Detailed information about a snapshot');
|
|
43
48
|
|
|
@@ -52,60 +57,56 @@ const SnapshotListDataSchema = z
|
|
|
52
57
|
const SnapshotListResponseSchema = APIResponseSchema(SnapshotListDataSchema);
|
|
53
58
|
const SnapshotDeleteResponseSchema = APIResponseSchemaNoData();
|
|
54
59
|
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface SnapshotInfo {
|
|
61
|
-
snapshotId: string;
|
|
62
|
-
runtimeId?: string | null;
|
|
63
|
-
name: string;
|
|
64
|
-
description?: string | null;
|
|
65
|
-
tag?: string | null;
|
|
66
|
-
sizeBytes: number;
|
|
67
|
-
fileCount: number;
|
|
68
|
-
parentSnapshotId?: string | null;
|
|
69
|
-
createdAt: string;
|
|
70
|
-
downloadUrl?: string;
|
|
71
|
-
files?: SnapshotFileInfo[] | null;
|
|
72
|
-
}
|
|
60
|
+
export type SnapshotFileInfo = z.infer<typeof SnapshotFileInfoSchema>;
|
|
61
|
+
export type SnapshotInfo = z.infer<typeof SnapshotInfoSchema>;
|
|
62
|
+
export type SnapshotListResponse = z.infer<typeof SnapshotListDataSchema>;
|
|
73
63
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
64
|
+
const _SnapshotCreateParamsSchema = z
|
|
65
|
+
.object({
|
|
66
|
+
sandboxId: z.string().describe('ID of the sandbox to snapshot'),
|
|
67
|
+
name: z.string().optional().describe('Display name for the snapshot'),
|
|
68
|
+
description: z.string().optional().describe('Description of the snapshot'),
|
|
69
|
+
tag: z.string().optional().describe('Tag for the snapshot'),
|
|
70
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
71
|
+
})
|
|
72
|
+
.describe('Parameters for creating a snapshot');
|
|
81
73
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
const _SnapshotGetParamsSchema = z
|
|
75
|
+
.object({
|
|
76
|
+
snapshotId: z.string().describe('ID of the snapshot to retrieve'),
|
|
77
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
78
|
+
})
|
|
79
|
+
.describe('Parameters for getting a snapshot');
|
|
86
80
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
81
|
+
const _SnapshotListParamsSchema = z
|
|
82
|
+
.object({
|
|
83
|
+
sandboxId: z.string().optional().describe('Filter by sandbox ID'),
|
|
84
|
+
limit: z.number().optional().describe('Maximum number of snapshots to return'),
|
|
85
|
+
offset: z.number().optional().describe('Number of snapshots to skip'),
|
|
86
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
87
|
+
})
|
|
88
|
+
.describe('Parameters for listing snapshots');
|
|
93
89
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
const _SnapshotDeleteParamsSchema = z
|
|
91
|
+
.object({
|
|
92
|
+
snapshotId: z.string().describe('ID of the snapshot to delete'),
|
|
93
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
94
|
+
})
|
|
95
|
+
.describe('Parameters for deleting a snapshot');
|
|
98
96
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
const _SnapshotTagParamsSchema = z
|
|
98
|
+
.object({
|
|
99
|
+
snapshotId: z.string().describe('ID of the snapshot to tag'),
|
|
100
|
+
tag: z.string().nullable().describe('New tag (or null to remove)'),
|
|
101
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
102
|
+
})
|
|
103
|
+
.describe('Parameters for tagging a snapshot');
|
|
103
104
|
|
|
104
|
-
export
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
export type SnapshotCreateParams = z.infer<typeof _SnapshotCreateParamsSchema>;
|
|
106
|
+
export type SnapshotGetParams = z.infer<typeof _SnapshotGetParamsSchema>;
|
|
107
|
+
export type SnapshotListParams = z.infer<typeof _SnapshotListParamsSchema>;
|
|
108
|
+
export type SnapshotDeleteParams = z.infer<typeof _SnapshotDeleteParamsSchema>;
|
|
109
|
+
export type SnapshotTagParams = z.infer<typeof _SnapshotTagParamsSchema>;
|
|
109
110
|
|
|
110
111
|
function buildQueryString(params: Record<string, string | number | undefined>): string {
|
|
111
112
|
const query = new URLSearchParams();
|
|
@@ -267,3 +268,133 @@ export async function snapshotTag(
|
|
|
267
268
|
|
|
268
269
|
throw new SandboxResponseError({ message: resp.message });
|
|
269
270
|
}
|
|
271
|
+
|
|
272
|
+
// ===== Snapshot Build API =====
|
|
273
|
+
|
|
274
|
+
const _SnapshotBuildInitParamsSchema = z
|
|
275
|
+
.object({
|
|
276
|
+
runtime: z.string().describe('Runtime identifier (name:tag or runtime ID)'),
|
|
277
|
+
name: z.string().optional().describe('Display name for the snapshot'),
|
|
278
|
+
tag: z.string().optional().describe('Tag for the snapshot'),
|
|
279
|
+
description: z.string().optional().describe('Description of the snapshot'),
|
|
280
|
+
contentHash: z.string().optional().describe('SHA-256 hash of snapshot content for change detection'),
|
|
281
|
+
force: z.boolean().optional().describe('Force rebuild even if content is unchanged'),
|
|
282
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
283
|
+
})
|
|
284
|
+
.describe('Parameters for initializing a snapshot build');
|
|
285
|
+
|
|
286
|
+
const SnapshotBuildInitResponseSchema = z
|
|
287
|
+
.object({
|
|
288
|
+
snapshotId: z.string().optional().describe('Unique identifier for the snapshot being built'),
|
|
289
|
+
uploadUrl: z.string().optional().describe('Pre-signed URL for uploading the snapshot archive'),
|
|
290
|
+
s3Key: z.string().optional().describe('S3 key where the snapshot will be stored'),
|
|
291
|
+
unchanged: z.boolean().optional().describe('True if snapshot content is unchanged'),
|
|
292
|
+
existingId: z.string().optional().describe('ID of existing unchanged snapshot'),
|
|
293
|
+
existingName: z.string().optional().describe('Name of existing unchanged snapshot'),
|
|
294
|
+
existingTag: z.string().optional().describe('Tag of existing unchanged snapshot'),
|
|
295
|
+
})
|
|
296
|
+
.describe('Response from snapshot build init API');
|
|
297
|
+
|
|
298
|
+
const SnapshotBuildInitAPIResponseSchema = APIResponseSchema(SnapshotBuildInitResponseSchema);
|
|
299
|
+
|
|
300
|
+
const _SnapshotBuildFinalizeParamsSchema = z
|
|
301
|
+
.object({
|
|
302
|
+
snapshotId: z.string().describe('Snapshot ID from init response'),
|
|
303
|
+
sizeBytes: z.number().describe('Total size of the snapshot in bytes'),
|
|
304
|
+
fileCount: z.number().describe('Number of files in the snapshot'),
|
|
305
|
+
files: z
|
|
306
|
+
.array(SnapshotFileInfoSchema)
|
|
307
|
+
.describe('List of files with path and size'),
|
|
308
|
+
dependencies: z
|
|
309
|
+
.array(z.string())
|
|
310
|
+
.optional()
|
|
311
|
+
.describe('List of apt packages to install'),
|
|
312
|
+
env: z
|
|
313
|
+
.record(z.string(), z.string())
|
|
314
|
+
.optional()
|
|
315
|
+
.describe('Environment variables to set'),
|
|
316
|
+
metadata: z
|
|
317
|
+
.record(z.string(), z.string())
|
|
318
|
+
.optional()
|
|
319
|
+
.describe('User-defined metadata key-value pairs'),
|
|
320
|
+
orgId: z.string().optional().describe('Organization ID'),
|
|
321
|
+
})
|
|
322
|
+
.describe('Parameters for finalizing a snapshot build');
|
|
323
|
+
|
|
324
|
+
export type SnapshotBuildInitParams = z.infer<typeof _SnapshotBuildInitParamsSchema>;
|
|
325
|
+
export type SnapshotBuildInitResponse = z.infer<typeof SnapshotBuildInitResponseSchema>;
|
|
326
|
+
export type SnapshotBuildFinalizeParams = z.infer<typeof _SnapshotBuildFinalizeParamsSchema>;
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Initialize a snapshot build by getting a presigned upload URL.
|
|
330
|
+
*
|
|
331
|
+
* @param client - The API client to use for the request
|
|
332
|
+
* @param params - Parameters including runtime and optional name/tag/description
|
|
333
|
+
* @returns Snapshot ID and presigned upload URL
|
|
334
|
+
* @throws {SandboxResponseError} If the initialization fails
|
|
335
|
+
*/
|
|
336
|
+
export async function snapshotBuildInit(
|
|
337
|
+
client: APIClient,
|
|
338
|
+
params: SnapshotBuildInitParams
|
|
339
|
+
): Promise<SnapshotBuildInitResponse> {
|
|
340
|
+
const { runtime, name, description, tag, contentHash, force, orgId } = params;
|
|
341
|
+
const queryString = buildQueryString({ orgId });
|
|
342
|
+
const url = `/sandbox/${API_VERSION}/snapshots/build${queryString}`;
|
|
343
|
+
|
|
344
|
+
const body: Record<string, string | boolean> = { runtime };
|
|
345
|
+
if (name) body.name = name;
|
|
346
|
+
if (description) body.description = description;
|
|
347
|
+
if (tag) body.tag = tag;
|
|
348
|
+
if (contentHash) body.contentHash = contentHash;
|
|
349
|
+
if (force) body.force = force;
|
|
350
|
+
|
|
351
|
+
const resp = await client.post<z.infer<typeof SnapshotBuildInitAPIResponseSchema>>(
|
|
352
|
+
url,
|
|
353
|
+
body,
|
|
354
|
+
SnapshotBuildInitAPIResponseSchema
|
|
355
|
+
);
|
|
356
|
+
|
|
357
|
+
if (resp.success) {
|
|
358
|
+
return resp.data;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
throw new SandboxResponseError({ message: resp.message });
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Finalize a snapshot build after uploading the archive.
|
|
366
|
+
*
|
|
367
|
+
* @param client - The API client to use for the request
|
|
368
|
+
* @param params - Parameters including snapshot details and file metadata
|
|
369
|
+
* @returns The created snapshot information
|
|
370
|
+
* @throws {SandboxResponseError} If the finalization fails
|
|
371
|
+
*/
|
|
372
|
+
export async function snapshotBuildFinalize(
|
|
373
|
+
client: APIClient,
|
|
374
|
+
params: SnapshotBuildFinalizeParams
|
|
375
|
+
): Promise<SnapshotInfo> {
|
|
376
|
+
const { snapshotId, sizeBytes, fileCount, files, dependencies, env, metadata, orgId } = params;
|
|
377
|
+
const queryString = buildQueryString({ orgId });
|
|
378
|
+
const url = `/sandbox/${API_VERSION}/snapshots/${snapshotId}/finalize${queryString}`;
|
|
379
|
+
|
|
380
|
+
const body: Record<string, unknown> = {
|
|
381
|
+
sizeBytes,
|
|
382
|
+
fileCount,
|
|
383
|
+
files,
|
|
384
|
+
};
|
|
385
|
+
if (dependencies) body.dependencies = dependencies;
|
|
386
|
+
if (env) body.env = env;
|
|
387
|
+
if (metadata) body.metadata = metadata;
|
|
388
|
+
|
|
389
|
+
const resp = await client.post<z.infer<typeof SnapshotGetResponseSchema>>(
|
|
390
|
+
url,
|
|
391
|
+
body,
|
|
392
|
+
SnapshotGetResponseSchema
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
if (resp.success) {
|
|
396
|
+
return resp.data;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
throw new SandboxResponseError({ message: resp.message });
|
|
400
|
+
}
|
package/src/config.ts
CHANGED