@sealant/sdk 0.26.1 → 0.28.0
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/README.md +5 -1
- package/dist/effect/api-client.d.ts +2 -2
- package/dist/effect/operations.d.ts +1 -1
- package/dist/types.d.ts +9 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -122,7 +122,11 @@ const workspace = await sealant.workspaces.create({
|
|
|
122
122
|
|
|
123
123
|
`services.docker` installs the Docker client in the image and starts a disposable, workspace-scoped
|
|
124
124
|
rootless daemon at launch. The workspace receives `DOCKER_HOST`; Sealant never mounts the host
|
|
125
|
-
Docker socket.
|
|
125
|
+
Docker socket. On Kubernetes the daemon is a sidecar of a user-namespaced workspace Pod and the
|
|
126
|
+
operator has to enable it (`workspaces.docker.enabled`); an install that cannot serve it refuses
|
|
127
|
+
`create` with the stable code `workspace-docker-unsupported` (HTTP 422) — map that code to explain
|
|
128
|
+
the gap beside your Docker switch instead of surfacing a launch failure later. GitHub credentials
|
|
129
|
+
provide both `GH_TOKEN` and `GITHUB_TOKEN` to the workspace.
|
|
126
130
|
|
|
127
131
|
## Workspace environment variables
|
|
128
132
|
|
|
@@ -1138,7 +1138,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
1138
1138
|
readonly registryId: string;
|
|
1139
1139
|
readonly repository: string;
|
|
1140
1140
|
readonly tag: string;
|
|
1141
|
-
}, Mode>, import("effect/unstable/http/HttpClientError").HttpClientError | ([Mode] extends ["response-only"] ? never : import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError), [Mode] extends ["response-only"] ? never : never>;
|
|
1141
|
+
}, Mode>, import("effect/unstable/http/HttpClientError").HttpClientError | ([Mode] extends ["response-only"] ? never : import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError), [Mode] extends ["response-only"] ? never : never>;
|
|
1142
1142
|
readonly execWorkspace: <Mode extends import("effect/unstable/httpapi/HttpApiEndpoint").ClientResponseMode = import("effect/unstable/httpapi/HttpApiEndpoint").ClientResponseMode>(request: {
|
|
1143
1143
|
readonly params: {
|
|
1144
1144
|
readonly workspaceId: string;
|
|
@@ -2524,7 +2524,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
2524
2524
|
readonly registryId: string;
|
|
2525
2525
|
readonly repository: string;
|
|
2526
2526
|
readonly tag: string;
|
|
2527
|
-
}, Mode>, import("effect/unstable/http/HttpClientError").HttpClientError | ([Mode] extends ["response-only"] ? never : import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError), [Mode] extends ["response-only"] ? never : never>;
|
|
2527
|
+
}, Mode>, import("effect/unstable/http/HttpClientError").HttpClientError | ([Mode] extends ["response-only"] ? never : import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError), [Mode] extends ["response-only"] ? never : never>;
|
|
2528
2528
|
readonly execWorkspace: <Mode extends import("effect/unstable/httpapi/HttpApiEndpoint").ClientResponseMode = import("effect/unstable/httpapi/HttpApiEndpoint").ClientResponseMode>(request: {
|
|
2529
2529
|
readonly params: {
|
|
2530
2530
|
readonly workspaceId: string;
|
|
@@ -36,7 +36,7 @@ export declare const createWorkspaceOp: (payload: {
|
|
|
36
36
|
readonly registryId: string;
|
|
37
37
|
readonly repository: string;
|
|
38
38
|
readonly tag: string;
|
|
39
|
-
}, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError, SealantApiClient>;
|
|
39
|
+
}, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError, SealantApiClient>;
|
|
40
40
|
export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string | undefined) => Effect.Effect<{
|
|
41
41
|
readonly workspaceId: string;
|
|
42
42
|
readonly name: string;
|
package/dist/types.d.ts
CHANGED
|
@@ -103,18 +103,19 @@ export interface WorkspaceCredentialsOptions {
|
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
105
|
* A workspace sourced from a CALLER-OWNED host directory instead of a fresh clone. The platform
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
106
|
+
* mounts `path` as the workspace working directory and treats it as caller-owned: writes persist
|
|
107
|
+
* across workspace stop/restart/expiry, and the path is never reprovisioned or deleted. In strict
|
|
108
|
+
* Docker volume mode this is the canonical absolute path visible inside the application and worker
|
|
109
|
+
* containers, not Docker's private host volume directory. When `path` is a linked Git worktree, the
|
|
110
|
+
* SDK also mounts its shared Git metadata at the absolute path named by the worktree's `.git`
|
|
111
|
+
* pointer. No repository data is copied into workspace-container-owned storage.
|
|
111
112
|
* The install must allowlist the path's root (`SEALANT_MOUNT_ALLOWED_STORE_ROOTS`); paths
|
|
112
113
|
* outside the allowlist are rejected at create. Credentials and dotfiles options compose
|
|
113
114
|
* unchanged. Clone-based workspaces remain the right shape for independent verification.
|
|
114
115
|
*/
|
|
115
116
|
export interface WorkspaceMountSource {
|
|
116
117
|
readonly kind: "mount";
|
|
117
|
-
/** Absolute, normalized
|
|
118
|
+
/** Absolute, normalized deployment path (no `..` segments); container-visible in volume mode. */
|
|
118
119
|
readonly path: string;
|
|
119
120
|
}
|
|
120
121
|
/**
|
|
@@ -127,7 +128,7 @@ export interface WorkspaceMountSource {
|
|
|
127
128
|
*/
|
|
128
129
|
export interface WorkspaceStandbySource {
|
|
129
130
|
readonly kind: "standby";
|
|
130
|
-
/** Absolute, normalized
|
|
131
|
+
/** Absolute, normalized deployment root (no `..` segments); container-visible in volume mode. */
|
|
131
132
|
readonly rootPath: string;
|
|
132
133
|
}
|
|
133
134
|
/**
|
|
@@ -139,7 +140,7 @@ export interface WorkspaceStandbySource {
|
|
|
139
140
|
* never reprovisioned, never cleaned.
|
|
140
141
|
*/
|
|
141
142
|
export interface WorkspaceExtraMount {
|
|
142
|
-
/** Absolute, normalized
|
|
143
|
+
/** Absolute, normalized deployment path (no `..` segments); container-visible in volume mode. */
|
|
143
144
|
readonly hostPath: string;
|
|
144
145
|
/** Absolute container path to mount at, outside the working directory (e.g. `/workspace/ref/x`). */
|
|
145
146
|
readonly mountPath: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sealant/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "The fluent public SDK for Sealant — create a workspace, run a harness, replay the record.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sealant/api-contracts": "^0.
|
|
29
|
+
"@sealant/api-contracts": "^0.28.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@effect/vitest": "4.0.0-beta.85",
|