@sealant/sdk-next 0.40.0-next.791 → 0.40.0-next.792

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/client.js CHANGED
@@ -153,10 +153,12 @@ export class Sealant {
153
153
  ownerUserId: payload.ownerUserId,
154
154
  registryId: payload.registryId,
155
155
  spec: payload.spec,
156
+ ...(payload.imageScopeId === undefined ? {} : { imageScopeId: payload.imageScopeId }),
156
157
  }));
157
158
  return {
158
159
  imageKey: imageSpecKey(payload.spec),
159
160
  planHash: answered.planHash,
161
+ ...(answered.publication === undefined ? {} : { publication: answered.publication }),
160
162
  ...(answered.publishedImage === undefined
161
163
  ? {}
162
164
  : { image: toWorkspaceImage(answered.publishedImage) }),
@@ -1629,6 +1629,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1629
1629
  readonly sshUser: import("effect/Schema").Null;
1630
1630
  }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
1631
1631
  readonly createWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"createWorkspace", "POST", "/v1/workspaces/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
1632
+ readonly imageScopeId: import("effect/Schema").optional<import("effect/Schema").String>;
1632
1633
  readonly ownerUserId: import("effect/Schema").String;
1633
1634
  readonly registryId: import("effect/Schema").String;
1634
1635
  readonly repository: import("effect/Schema").String;
@@ -1670,7 +1671,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1670
1671
  readonly tag: import("effect/Schema").String;
1671
1672
  readonly runId: import("effect/Schema").optional<import("effect/Schema").String>;
1672
1673
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
1673
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
1674
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
1674
1675
  readonly resourceId: import("effect/Schema").String;
1675
1676
  readonly reference: import("effect/Schema").String;
1676
1677
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -1681,7 +1682,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1681
1682
  }>>;
1682
1683
  readonly replayed: import("effect/Schema").optional<import("effect/Schema").Boolean>;
1683
1684
  readonly launchId: import("effect/Schema").optional<import("effect/Schema").String>;
1684
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError | typeof import("@sealant/api-contracts").WorkspaceForbiddenError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
1685
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError | typeof import("@sealant/api-contracts").WorkspaceForbiddenError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
1685
1686
  readonly execWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"execWorkspace", "POST", "/v1/workspaces/:workspaceId/exec", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
1686
1687
  readonly workspaceId: import("effect/Schema").String;
1687
1688
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
@@ -1834,7 +1835,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1834
1835
  readonly repository: import("effect/Schema").optional<import("effect/Schema").String>;
1835
1836
  readonly tag: import("effect/Schema").optional<import("effect/Schema").String>;
1836
1837
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
1837
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
1838
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
1838
1839
  readonly resourceId: import("effect/Schema").String;
1839
1840
  readonly reference: import("effect/Schema").String;
1840
1841
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -1855,6 +1856,56 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1855
1856
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
1856
1857
  }>>;
1857
1858
  }>>;
1859
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
1860
+ readonly kind: import("effect/Schema").Literal<"oci">;
1861
+ readonly publicationId: import("effect/Schema").String;
1862
+ readonly image: import("effect/Schema").Struct<{
1863
+ readonly repository: import("effect/Schema").String;
1864
+ readonly tag: import("effect/Schema").String;
1865
+ readonly reference: import("effect/Schema").String;
1866
+ readonly digestReference: import("effect/Schema").String;
1867
+ readonly digest: import("effect/Schema").String;
1868
+ }>;
1869
+ }>, import("effect/Schema").Struct<{
1870
+ readonly kind: import("effect/Schema").Literal<"microvm">;
1871
+ readonly publicationId: import("effect/Schema").String;
1872
+ readonly image: import("effect/Schema").Struct<{
1873
+ readonly imageArn: import("effect/Schema").String;
1874
+ readonly imageVersion: import("effect/Schema").String;
1875
+ readonly planHash: import("effect/Schema").String;
1876
+ }>;
1877
+ }>, import("effect/Schema").Struct<{
1878
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
1879
+ readonly publicationId: import("effect/Schema").String;
1880
+ readonly snapshot: import("effect/Schema").Struct<{
1881
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
1882
+ readonly owner: import("effect/Schema").String;
1883
+ readonly build: import("effect/Schema").String;
1884
+ readonly recipeHash: import("effect/Schema").String;
1885
+ readonly receiptHash: import("effect/Schema").String;
1886
+ readonly identity: import("effect/Schema").Struct<{
1887
+ readonly name: import("effect/Schema").String;
1888
+ readonly sourceSandboxId: import("effect/Schema").String;
1889
+ readonly createdAt: import("effect/Schema").String;
1890
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
1891
+ }>;
1892
+ }>;
1893
+ readonly evidence: import("effect/Schema").Struct<{
1894
+ readonly recipeHash: import("effect/Schema").String;
1895
+ readonly receiptHash: import("effect/Schema").String;
1896
+ readonly assetsHash: import("effect/Schema").String;
1897
+ readonly runtime: import("effect/Schema").Struct<{
1898
+ readonly source: import("effect/Schema").String;
1899
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
1900
+ readonly manifest: import("effect/Schema").String;
1901
+ readonly sealantd: import("effect/Schema").String;
1902
+ readonly socat: import("effect/Schema").String;
1903
+ readonly relay: import("effect/Schema").String;
1904
+ }>;
1905
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
1906
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
1907
+ }>;
1908
+ }>]>>;
1858
1909
  readonly processUser: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>>;
1859
1910
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
1860
1911
  readonly message: import("effect/Schema").String;
@@ -1996,7 +2047,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
1996
2047
  readonly workspaceId: import("effect/Schema").String;
1997
2048
  readonly attemptId: import("effect/Schema").String;
1998
2049
  readonly runtime: import("effect/Schema").Struct<{
1999
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
2050
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
2000
2051
  readonly resourceId: import("effect/Schema").String;
2001
2052
  readonly reference: import("effect/Schema").String;
2002
2053
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped"]>;
@@ -2006,6 +2057,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2006
2057
  readonly sshKeyFingerprint: import("effect/Schema").optional<import("effect/Schema").String>;
2007
2058
  }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceUnauthorizedError | typeof import("@sealant/api-contracts").WorkspaceSshKeyNoLongerRegisteredError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
2008
2059
  readonly inspectWorkspaceImage: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"inspectWorkspaceImage", "POST", "/v1/workspaces/image", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
2060
+ readonly imageScopeId: import("effect/Schema").optional<import("effect/Schema").String>;
2009
2061
  readonly ownerUserId: import("effect/Schema").String;
2010
2062
  readonly registryId: import("effect/Schema").String;
2011
2063
  readonly spec: import("effect/Schema").Unknown;
@@ -2023,6 +2075,56 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2023
2075
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2024
2076
  }>>;
2025
2077
  }>>;
2078
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
2079
+ readonly kind: import("effect/Schema").Literal<"oci">;
2080
+ readonly publicationId: import("effect/Schema").String;
2081
+ readonly image: import("effect/Schema").Struct<{
2082
+ readonly repository: import("effect/Schema").String;
2083
+ readonly tag: import("effect/Schema").String;
2084
+ readonly reference: import("effect/Schema").String;
2085
+ readonly digestReference: import("effect/Schema").String;
2086
+ readonly digest: import("effect/Schema").String;
2087
+ }>;
2088
+ }>, import("effect/Schema").Struct<{
2089
+ readonly kind: import("effect/Schema").Literal<"microvm">;
2090
+ readonly publicationId: import("effect/Schema").String;
2091
+ readonly image: import("effect/Schema").Struct<{
2092
+ readonly imageArn: import("effect/Schema").String;
2093
+ readonly imageVersion: import("effect/Schema").String;
2094
+ readonly planHash: import("effect/Schema").String;
2095
+ }>;
2096
+ }>, import("effect/Schema").Struct<{
2097
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
2098
+ readonly publicationId: import("effect/Schema").String;
2099
+ readonly snapshot: import("effect/Schema").Struct<{
2100
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
2101
+ readonly owner: import("effect/Schema").String;
2102
+ readonly build: import("effect/Schema").String;
2103
+ readonly recipeHash: import("effect/Schema").String;
2104
+ readonly receiptHash: import("effect/Schema").String;
2105
+ readonly identity: import("effect/Schema").Struct<{
2106
+ readonly name: import("effect/Schema").String;
2107
+ readonly sourceSandboxId: import("effect/Schema").String;
2108
+ readonly createdAt: import("effect/Schema").String;
2109
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
2110
+ }>;
2111
+ }>;
2112
+ readonly evidence: import("effect/Schema").Struct<{
2113
+ readonly recipeHash: import("effect/Schema").String;
2114
+ readonly receiptHash: import("effect/Schema").String;
2115
+ readonly assetsHash: import("effect/Schema").String;
2116
+ readonly runtime: import("effect/Schema").Struct<{
2117
+ readonly source: import("effect/Schema").String;
2118
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
2119
+ readonly manifest: import("effect/Schema").String;
2120
+ readonly sealantd: import("effect/Schema").String;
2121
+ readonly socat: import("effect/Schema").String;
2122
+ readonly relay: import("effect/Schema").String;
2123
+ }>;
2124
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2125
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
2126
+ }>;
2127
+ }>]>>;
2026
2128
  readonly personLayout: import("effect/Schema").Struct<{
2027
2129
  readonly status: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2028
2130
  readonly missing: import("effect/Schema").$Array<import("effect/Schema").String>;
@@ -2030,7 +2132,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2030
2132
  readonly runtime: import("effect/Schema").String;
2031
2133
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2032
2134
  }>;
2033
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
2135
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
2034
2136
  readonly listWorkspaceAttempts: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"listWorkspaceAttempts", "GET", "/v1/workspaces/:workspaceId/attempts", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
2035
2137
  readonly workspaceId: import("effect/Schema").String;
2036
2138
  }>>, import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
@@ -2044,7 +2146,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2044
2146
  readonly triggerType: import("effect/Schema").Literals<readonly ["manual", "schedule", "api", "retry"]>;
2045
2147
  readonly triggerRef: import("effect/Schema").optional<import("effect/Schema").String>;
2046
2148
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
2047
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
2149
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
2048
2150
  readonly resourceId: import("effect/Schema").String;
2049
2151
  readonly reference: import("effect/Schema").String;
2050
2152
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -2065,6 +2167,56 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2065
2167
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2066
2168
  }>>;
2067
2169
  }>>;
2170
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
2171
+ readonly kind: import("effect/Schema").Literal<"oci">;
2172
+ readonly publicationId: import("effect/Schema").String;
2173
+ readonly image: import("effect/Schema").Struct<{
2174
+ readonly repository: import("effect/Schema").String;
2175
+ readonly tag: import("effect/Schema").String;
2176
+ readonly reference: import("effect/Schema").String;
2177
+ readonly digestReference: import("effect/Schema").String;
2178
+ readonly digest: import("effect/Schema").String;
2179
+ }>;
2180
+ }>, import("effect/Schema").Struct<{
2181
+ readonly kind: import("effect/Schema").Literal<"microvm">;
2182
+ readonly publicationId: import("effect/Schema").String;
2183
+ readonly image: import("effect/Schema").Struct<{
2184
+ readonly imageArn: import("effect/Schema").String;
2185
+ readonly imageVersion: import("effect/Schema").String;
2186
+ readonly planHash: import("effect/Schema").String;
2187
+ }>;
2188
+ }>, import("effect/Schema").Struct<{
2189
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
2190
+ readonly publicationId: import("effect/Schema").String;
2191
+ readonly snapshot: import("effect/Schema").Struct<{
2192
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
2193
+ readonly owner: import("effect/Schema").String;
2194
+ readonly build: import("effect/Schema").String;
2195
+ readonly recipeHash: import("effect/Schema").String;
2196
+ readonly receiptHash: import("effect/Schema").String;
2197
+ readonly identity: import("effect/Schema").Struct<{
2198
+ readonly name: import("effect/Schema").String;
2199
+ readonly sourceSandboxId: import("effect/Schema").String;
2200
+ readonly createdAt: import("effect/Schema").String;
2201
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
2202
+ }>;
2203
+ }>;
2204
+ readonly evidence: import("effect/Schema").Struct<{
2205
+ readonly recipeHash: import("effect/Schema").String;
2206
+ readonly receiptHash: import("effect/Schema").String;
2207
+ readonly assetsHash: import("effect/Schema").String;
2208
+ readonly runtime: import("effect/Schema").Struct<{
2209
+ readonly source: import("effect/Schema").String;
2210
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
2211
+ readonly manifest: import("effect/Schema").String;
2212
+ readonly sealantd: import("effect/Schema").String;
2213
+ readonly socat: import("effect/Schema").String;
2214
+ readonly relay: import("effect/Schema").String;
2215
+ }>;
2216
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2217
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
2218
+ }>;
2219
+ }>]>>;
2068
2220
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
2069
2221
  readonly message: import("effect/Schema").String;
2070
2222
  readonly code: import("effect/Schema").optional<import("effect/Schema").String>;
@@ -2158,7 +2310,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2158
2310
  readonly repository: import("effect/Schema").optional<import("effect/Schema").String>;
2159
2311
  readonly tag: import("effect/Schema").optional<import("effect/Schema").String>;
2160
2312
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
2161
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
2313
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
2162
2314
  readonly resourceId: import("effect/Schema").String;
2163
2315
  readonly reference: import("effect/Schema").String;
2164
2316
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -2179,6 +2331,56 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2179
2331
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2180
2332
  }>>;
2181
2333
  }>>;
2334
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
2335
+ readonly kind: import("effect/Schema").Literal<"oci">;
2336
+ readonly publicationId: import("effect/Schema").String;
2337
+ readonly image: import("effect/Schema").Struct<{
2338
+ readonly repository: import("effect/Schema").String;
2339
+ readonly tag: import("effect/Schema").String;
2340
+ readonly reference: import("effect/Schema").String;
2341
+ readonly digestReference: import("effect/Schema").String;
2342
+ readonly digest: import("effect/Schema").String;
2343
+ }>;
2344
+ }>, import("effect/Schema").Struct<{
2345
+ readonly kind: import("effect/Schema").Literal<"microvm">;
2346
+ readonly publicationId: import("effect/Schema").String;
2347
+ readonly image: import("effect/Schema").Struct<{
2348
+ readonly imageArn: import("effect/Schema").String;
2349
+ readonly imageVersion: import("effect/Schema").String;
2350
+ readonly planHash: import("effect/Schema").String;
2351
+ }>;
2352
+ }>, import("effect/Schema").Struct<{
2353
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
2354
+ readonly publicationId: import("effect/Schema").String;
2355
+ readonly snapshot: import("effect/Schema").Struct<{
2356
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
2357
+ readonly owner: import("effect/Schema").String;
2358
+ readonly build: import("effect/Schema").String;
2359
+ readonly recipeHash: import("effect/Schema").String;
2360
+ readonly receiptHash: import("effect/Schema").String;
2361
+ readonly identity: import("effect/Schema").Struct<{
2362
+ readonly name: import("effect/Schema").String;
2363
+ readonly sourceSandboxId: import("effect/Schema").String;
2364
+ readonly createdAt: import("effect/Schema").String;
2365
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
2366
+ }>;
2367
+ }>;
2368
+ readonly evidence: import("effect/Schema").Struct<{
2369
+ readonly recipeHash: import("effect/Schema").String;
2370
+ readonly receiptHash: import("effect/Schema").String;
2371
+ readonly assetsHash: import("effect/Schema").String;
2372
+ readonly runtime: import("effect/Schema").Struct<{
2373
+ readonly source: import("effect/Schema").String;
2374
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
2375
+ readonly manifest: import("effect/Schema").String;
2376
+ readonly sealantd: import("effect/Schema").String;
2377
+ readonly socat: import("effect/Schema").String;
2378
+ readonly relay: import("effect/Schema").String;
2379
+ }>;
2380
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
2381
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
2382
+ }>;
2383
+ }>]>>;
2182
2384
  readonly processUser: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>>;
2183
2385
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
2184
2386
  readonly message: import("effect/Schema").String;
@@ -2378,7 +2580,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
2378
2580
  readonly workspaceId: import("effect/Schema").String;
2379
2581
  readonly runId: import("effect/Schema").String;
2380
2582
  readonly status: import("effect/Schema").Literals<readonly ["queued", "running", "ready", "failed", "cancelled", "stopped", "retained"]>;
2381
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
2583
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
2382
2584
  readonly stopWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"stopWorkspace", "POST", "/v1/workspaces/:workspaceId/stop", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
2383
2585
  readonly workspaceId: import("effect/Schema").String;
2384
2586
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
@@ -4034,6 +4236,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4034
4236
  readonly sshUser: import("effect/Schema").Null;
4035
4237
  }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4036
4238
  readonly createWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"createWorkspace", "POST", "/v1/workspaces/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
4239
+ readonly imageScopeId: import("effect/Schema").optional<import("effect/Schema").String>;
4037
4240
  readonly ownerUserId: import("effect/Schema").String;
4038
4241
  readonly registryId: import("effect/Schema").String;
4039
4242
  readonly repository: import("effect/Schema").String;
@@ -4075,7 +4278,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4075
4278
  readonly tag: import("effect/Schema").String;
4076
4279
  readonly runId: import("effect/Schema").optional<import("effect/Schema").String>;
4077
4280
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
4078
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
4281
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
4079
4282
  readonly resourceId: import("effect/Schema").String;
4080
4283
  readonly reference: import("effect/Schema").String;
4081
4284
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -4086,7 +4289,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4086
4289
  }>>;
4087
4290
  readonly replayed: import("effect/Schema").optional<import("effect/Schema").Boolean>;
4088
4291
  readonly launchId: import("effect/Schema").optional<import("effect/Schema").String>;
4089
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError | typeof import("@sealant/api-contracts").WorkspaceForbiddenError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4292
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeEnvReferencesUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceDockerServiceUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError | typeof import("@sealant/api-contracts").WorkspaceForbiddenError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4090
4293
  readonly execWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"execWorkspace", "POST", "/v1/workspaces/:workspaceId/exec", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
4091
4294
  readonly workspaceId: import("effect/Schema").String;
4092
4295
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
@@ -4239,7 +4442,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4239
4442
  readonly repository: import("effect/Schema").optional<import("effect/Schema").String>;
4240
4443
  readonly tag: import("effect/Schema").optional<import("effect/Schema").String>;
4241
4444
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
4242
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
4445
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
4243
4446
  readonly resourceId: import("effect/Schema").String;
4244
4447
  readonly reference: import("effect/Schema").String;
4245
4448
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -4260,6 +4463,56 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4260
4463
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4261
4464
  }>>;
4262
4465
  }>>;
4466
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
4467
+ readonly kind: import("effect/Schema").Literal<"oci">;
4468
+ readonly publicationId: import("effect/Schema").String;
4469
+ readonly image: import("effect/Schema").Struct<{
4470
+ readonly repository: import("effect/Schema").String;
4471
+ readonly tag: import("effect/Schema").String;
4472
+ readonly reference: import("effect/Schema").String;
4473
+ readonly digestReference: import("effect/Schema").String;
4474
+ readonly digest: import("effect/Schema").String;
4475
+ }>;
4476
+ }>, import("effect/Schema").Struct<{
4477
+ readonly kind: import("effect/Schema").Literal<"microvm">;
4478
+ readonly publicationId: import("effect/Schema").String;
4479
+ readonly image: import("effect/Schema").Struct<{
4480
+ readonly imageArn: import("effect/Schema").String;
4481
+ readonly imageVersion: import("effect/Schema").String;
4482
+ readonly planHash: import("effect/Schema").String;
4483
+ }>;
4484
+ }>, import("effect/Schema").Struct<{
4485
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
4486
+ readonly publicationId: import("effect/Schema").String;
4487
+ readonly snapshot: import("effect/Schema").Struct<{
4488
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
4489
+ readonly owner: import("effect/Schema").String;
4490
+ readonly build: import("effect/Schema").String;
4491
+ readonly recipeHash: import("effect/Schema").String;
4492
+ readonly receiptHash: import("effect/Schema").String;
4493
+ readonly identity: import("effect/Schema").Struct<{
4494
+ readonly name: import("effect/Schema").String;
4495
+ readonly sourceSandboxId: import("effect/Schema").String;
4496
+ readonly createdAt: import("effect/Schema").String;
4497
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
4498
+ }>;
4499
+ }>;
4500
+ readonly evidence: import("effect/Schema").Struct<{
4501
+ readonly recipeHash: import("effect/Schema").String;
4502
+ readonly receiptHash: import("effect/Schema").String;
4503
+ readonly assetsHash: import("effect/Schema").String;
4504
+ readonly runtime: import("effect/Schema").Struct<{
4505
+ readonly source: import("effect/Schema").String;
4506
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
4507
+ readonly manifest: import("effect/Schema").String;
4508
+ readonly sealantd: import("effect/Schema").String;
4509
+ readonly socat: import("effect/Schema").String;
4510
+ readonly relay: import("effect/Schema").String;
4511
+ }>;
4512
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4513
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
4514
+ }>;
4515
+ }>]>>;
4263
4516
  readonly processUser: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>>;
4264
4517
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
4265
4518
  readonly message: import("effect/Schema").String;
@@ -4401,7 +4654,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4401
4654
  readonly workspaceId: import("effect/Schema").String;
4402
4655
  readonly attemptId: import("effect/Schema").String;
4403
4656
  readonly runtime: import("effect/Schema").Struct<{
4404
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
4657
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
4405
4658
  readonly resourceId: import("effect/Schema").String;
4406
4659
  readonly reference: import("effect/Schema").String;
4407
4660
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped"]>;
@@ -4411,6 +4664,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4411
4664
  readonly sshKeyFingerprint: import("effect/Schema").optional<import("effect/Schema").String>;
4412
4665
  }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceUnauthorizedError | typeof import("@sealant/api-contracts").WorkspaceSshKeyNoLongerRegisteredError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4413
4666
  readonly inspectWorkspaceImage: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"inspectWorkspaceImage", "POST", "/v1/workspaces/image", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
4667
+ readonly imageScopeId: import("effect/Schema").optional<import("effect/Schema").String>;
4414
4668
  readonly ownerUserId: import("effect/Schema").String;
4415
4669
  readonly registryId: import("effect/Schema").String;
4416
4670
  readonly spec: import("effect/Schema").Unknown;
@@ -4428,6 +4682,56 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4428
4682
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4429
4683
  }>>;
4430
4684
  }>>;
4685
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
4686
+ readonly kind: import("effect/Schema").Literal<"oci">;
4687
+ readonly publicationId: import("effect/Schema").String;
4688
+ readonly image: import("effect/Schema").Struct<{
4689
+ readonly repository: import("effect/Schema").String;
4690
+ readonly tag: import("effect/Schema").String;
4691
+ readonly reference: import("effect/Schema").String;
4692
+ readonly digestReference: import("effect/Schema").String;
4693
+ readonly digest: import("effect/Schema").String;
4694
+ }>;
4695
+ }>, import("effect/Schema").Struct<{
4696
+ readonly kind: import("effect/Schema").Literal<"microvm">;
4697
+ readonly publicationId: import("effect/Schema").String;
4698
+ readonly image: import("effect/Schema").Struct<{
4699
+ readonly imageArn: import("effect/Schema").String;
4700
+ readonly imageVersion: import("effect/Schema").String;
4701
+ readonly planHash: import("effect/Schema").String;
4702
+ }>;
4703
+ }>, import("effect/Schema").Struct<{
4704
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
4705
+ readonly publicationId: import("effect/Schema").String;
4706
+ readonly snapshot: import("effect/Schema").Struct<{
4707
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
4708
+ readonly owner: import("effect/Schema").String;
4709
+ readonly build: import("effect/Schema").String;
4710
+ readonly recipeHash: import("effect/Schema").String;
4711
+ readonly receiptHash: import("effect/Schema").String;
4712
+ readonly identity: import("effect/Schema").Struct<{
4713
+ readonly name: import("effect/Schema").String;
4714
+ readonly sourceSandboxId: import("effect/Schema").String;
4715
+ readonly createdAt: import("effect/Schema").String;
4716
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
4717
+ }>;
4718
+ }>;
4719
+ readonly evidence: import("effect/Schema").Struct<{
4720
+ readonly recipeHash: import("effect/Schema").String;
4721
+ readonly receiptHash: import("effect/Schema").String;
4722
+ readonly assetsHash: import("effect/Schema").String;
4723
+ readonly runtime: import("effect/Schema").Struct<{
4724
+ readonly source: import("effect/Schema").String;
4725
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
4726
+ readonly manifest: import("effect/Schema").String;
4727
+ readonly sealantd: import("effect/Schema").String;
4728
+ readonly socat: import("effect/Schema").String;
4729
+ readonly relay: import("effect/Schema").String;
4730
+ }>;
4731
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4732
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
4733
+ }>;
4734
+ }>]>>;
4431
4735
  readonly personLayout: import("effect/Schema").Struct<{
4432
4736
  readonly status: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4433
4737
  readonly missing: import("effect/Schema").$Array<import("effect/Schema").String>;
@@ -4435,7 +4739,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4435
4739
  readonly runtime: import("effect/Schema").String;
4436
4740
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4437
4741
  }>;
4438
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4742
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4439
4743
  readonly listWorkspaceAttempts: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"listWorkspaceAttempts", "GET", "/v1/workspaces/:workspaceId/attempts", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
4440
4744
  readonly workspaceId: import("effect/Schema").String;
4441
4745
  }>>, import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
@@ -4449,7 +4753,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4449
4753
  readonly triggerType: import("effect/Schema").Literals<readonly ["manual", "schedule", "api", "retry"]>;
4450
4754
  readonly triggerRef: import("effect/Schema").optional<import("effect/Schema").String>;
4451
4755
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
4452
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
4756
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
4453
4757
  readonly resourceId: import("effect/Schema").String;
4454
4758
  readonly reference: import("effect/Schema").String;
4455
4759
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -4470,6 +4774,56 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4470
4774
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4471
4775
  }>>;
4472
4776
  }>>;
4777
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
4778
+ readonly kind: import("effect/Schema").Literal<"oci">;
4779
+ readonly publicationId: import("effect/Schema").String;
4780
+ readonly image: import("effect/Schema").Struct<{
4781
+ readonly repository: import("effect/Schema").String;
4782
+ readonly tag: import("effect/Schema").String;
4783
+ readonly reference: import("effect/Schema").String;
4784
+ readonly digestReference: import("effect/Schema").String;
4785
+ readonly digest: import("effect/Schema").String;
4786
+ }>;
4787
+ }>, import("effect/Schema").Struct<{
4788
+ readonly kind: import("effect/Schema").Literal<"microvm">;
4789
+ readonly publicationId: import("effect/Schema").String;
4790
+ readonly image: import("effect/Schema").Struct<{
4791
+ readonly imageArn: import("effect/Schema").String;
4792
+ readonly imageVersion: import("effect/Schema").String;
4793
+ readonly planHash: import("effect/Schema").String;
4794
+ }>;
4795
+ }>, import("effect/Schema").Struct<{
4796
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
4797
+ readonly publicationId: import("effect/Schema").String;
4798
+ readonly snapshot: import("effect/Schema").Struct<{
4799
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
4800
+ readonly owner: import("effect/Schema").String;
4801
+ readonly build: import("effect/Schema").String;
4802
+ readonly recipeHash: import("effect/Schema").String;
4803
+ readonly receiptHash: import("effect/Schema").String;
4804
+ readonly identity: import("effect/Schema").Struct<{
4805
+ readonly name: import("effect/Schema").String;
4806
+ readonly sourceSandboxId: import("effect/Schema").String;
4807
+ readonly createdAt: import("effect/Schema").String;
4808
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
4809
+ }>;
4810
+ }>;
4811
+ readonly evidence: import("effect/Schema").Struct<{
4812
+ readonly recipeHash: import("effect/Schema").String;
4813
+ readonly receiptHash: import("effect/Schema").String;
4814
+ readonly assetsHash: import("effect/Schema").String;
4815
+ readonly runtime: import("effect/Schema").Struct<{
4816
+ readonly source: import("effect/Schema").String;
4817
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
4818
+ readonly manifest: import("effect/Schema").String;
4819
+ readonly sealantd: import("effect/Schema").String;
4820
+ readonly socat: import("effect/Schema").String;
4821
+ readonly relay: import("effect/Schema").String;
4822
+ }>;
4823
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4824
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
4825
+ }>;
4826
+ }>]>>;
4473
4827
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
4474
4828
  readonly message: import("effect/Schema").String;
4475
4829
  readonly code: import("effect/Schema").optional<import("effect/Schema").String>;
@@ -4563,7 +4917,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4563
4917
  readonly repository: import("effect/Schema").optional<import("effect/Schema").String>;
4564
4918
  readonly tag: import("effect/Schema").optional<import("effect/Schema").String>;
4565
4919
  readonly runtime: import("effect/Schema").optional<import("effect/Schema").Struct<{
4566
- readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm"]>;
4920
+ readonly adapter: import("effect/Schema").Literals<readonly ["docker", "k8s", "k3s", "cloudflare", "microvm", "boat"]>;
4567
4921
  readonly resourceId: import("effect/Schema").String;
4568
4922
  readonly reference: import("effect/Schema").String;
4569
4923
  readonly status: import("effect/Schema").Literals<readonly ["pending", "running", "ready", "failed", "stopped", "retained"]>;
@@ -4584,6 +4938,56 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4584
4938
  readonly acl: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4585
4939
  }>>;
4586
4940
  }>>;
4941
+ readonly publication: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
4942
+ readonly kind: import("effect/Schema").Literal<"oci">;
4943
+ readonly publicationId: import("effect/Schema").String;
4944
+ readonly image: import("effect/Schema").Struct<{
4945
+ readonly repository: import("effect/Schema").String;
4946
+ readonly tag: import("effect/Schema").String;
4947
+ readonly reference: import("effect/Schema").String;
4948
+ readonly digestReference: import("effect/Schema").String;
4949
+ readonly digest: import("effect/Schema").String;
4950
+ }>;
4951
+ }>, import("effect/Schema").Struct<{
4952
+ readonly kind: import("effect/Schema").Literal<"microvm">;
4953
+ readonly publicationId: import("effect/Schema").String;
4954
+ readonly image: import("effect/Schema").Struct<{
4955
+ readonly imageArn: import("effect/Schema").String;
4956
+ readonly imageVersion: import("effect/Schema").String;
4957
+ readonly planHash: import("effect/Schema").String;
4958
+ }>;
4959
+ }>, import("effect/Schema").Struct<{
4960
+ readonly kind: import("effect/Schema").Literal<"boat-native">;
4961
+ readonly publicationId: import("effect/Schema").String;
4962
+ readonly snapshot: import("effect/Schema").Struct<{
4963
+ readonly kind: import("effect/Schema").Literal<"boat-saved-snapshot">;
4964
+ readonly owner: import("effect/Schema").String;
4965
+ readonly build: import("effect/Schema").String;
4966
+ readonly recipeHash: import("effect/Schema").String;
4967
+ readonly receiptHash: import("effect/Schema").String;
4968
+ readonly identity: import("effect/Schema").Struct<{
4969
+ readonly name: import("effect/Schema").String;
4970
+ readonly sourceSandboxId: import("effect/Schema").String;
4971
+ readonly createdAt: import("effect/Schema").String;
4972
+ readonly snapshotId: import("effect/Schema").optional<import("effect/Schema").String>;
4973
+ }>;
4974
+ }>;
4975
+ readonly evidence: import("effect/Schema").Struct<{
4976
+ readonly recipeHash: import("effect/Schema").String;
4977
+ readonly receiptHash: import("effect/Schema").String;
4978
+ readonly assetsHash: import("effect/Schema").String;
4979
+ readonly runtime: import("effect/Schema").Struct<{
4980
+ readonly source: import("effect/Schema").String;
4981
+ readonly platform: import("effect/Schema").Literal<"linux/amd64">;
4982
+ readonly manifest: import("effect/Schema").String;
4983
+ readonly sealantd: import("effect/Schema").String;
4984
+ readonly socat: import("effect/Schema").String;
4985
+ readonly relay: import("effect/Schema").String;
4986
+ }>;
4987
+ readonly daemonRecovery: import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>;
4988
+ readonly executorRecovery: import("effect/Schema").Literal<"unverified">;
4989
+ }>;
4990
+ }>]>>;
4587
4991
  readonly processUser: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["supported", "unsupported", "unknown"]>>;
4588
4992
  readonly error: import("effect/Schema").optional<import("effect/Schema").Struct<{
4589
4993
  readonly message: import("effect/Schema").String;
@@ -4783,7 +5187,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
4783
5187
  readonly workspaceId: import("effect/Schema").String;
4784
5188
  readonly runId: import("effect/Schema").String;
4785
5189
  readonly status: import("effect/Schema").Literals<readonly ["queued", "running", "ready", "failed", "cancelled", "stopped", "retained"]>;
4786
- }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
5190
+ }>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").BudgetExceededError | typeof import("@sealant/api-contracts").WorkspaceBadRequestError | typeof import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | typeof import("@sealant/api-contracts").WorkspaceNotFoundError | typeof import("@sealant/api-contracts").WorkspaceConflictError | typeof import("@sealant/api-contracts").WorkspaceBadGatewayError | typeof import("@sealant/api-contracts").WorkspaceServiceUnavailableError | typeof import("@sealant/api-contracts").WorkspaceInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
4787
5191
  readonly stopWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"stopWorkspace", "POST", "/v1/workspaces/:workspaceId/stop", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
4788
5192
  readonly workspaceId: import("effect/Schema").String;
4789
5193
  }>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
@@ -16,7 +16,7 @@ export declare const createWorkspaceOp: (payload: CreateWorkspaceRequest, idempo
16
16
  readonly tag: string;
17
17
  readonly runId?: string | undefined;
18
18
  readonly runtime?: {
19
- readonly adapter: "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
19
+ readonly adapter: "boat" | "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
20
20
  readonly resourceId: string;
21
21
  readonly reference: string;
22
22
  readonly status: "failed" | "pending" | "ready" | "retained" | "running" | "stopped";
@@ -27,7 +27,7 @@ export declare const createWorkspaceOp: (payload: CreateWorkspaceRequest, idempo
27
27
  } | undefined;
28
28
  readonly replayed?: boolean | undefined;
29
29
  readonly launchId?: string | undefined;
30
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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 | import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError, SealantApiClient>;
30
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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").WorkspaceRuntimeRequirementUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError | import("@sealant/api-contracts").WorkspaceSshOwnerRefusedError, SealantApiClient>;
31
31
  export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string) => Effect.Effect<{
32
32
  readonly workspaceId: string;
33
33
  readonly name: string;
@@ -37,7 +37,7 @@ export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string)
37
37
  readonly repository?: string | undefined;
38
38
  readonly tag?: string | undefined;
39
39
  readonly runtime?: {
40
- readonly adapter: "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
40
+ readonly adapter: "boat" | "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
41
41
  readonly resourceId: string;
42
42
  readonly reference: string;
43
43
  readonly status: "failed" | "pending" | "ready" | "retained" | "running" | "stopped";
@@ -58,6 +58,56 @@ export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string)
58
58
  readonly acl: "supported" | "unknown" | "unsupported";
59
59
  } | undefined;
60
60
  } | undefined;
61
+ readonly publication?: {
62
+ readonly kind: "oci";
63
+ readonly publicationId: string;
64
+ readonly image: {
65
+ readonly repository: string;
66
+ readonly tag: string;
67
+ readonly reference: string;
68
+ readonly digestReference: string;
69
+ readonly digest: string;
70
+ };
71
+ } | {
72
+ readonly kind: "microvm";
73
+ readonly publicationId: string;
74
+ readonly image: {
75
+ readonly imageArn: string;
76
+ readonly imageVersion: string;
77
+ readonly planHash: string;
78
+ };
79
+ } | {
80
+ readonly kind: "boat-native";
81
+ readonly publicationId: string;
82
+ readonly snapshot: {
83
+ readonly kind: "boat-saved-snapshot";
84
+ readonly owner: string;
85
+ readonly build: string;
86
+ readonly recipeHash: string;
87
+ readonly receiptHash: string;
88
+ readonly identity: {
89
+ readonly name: string;
90
+ readonly sourceSandboxId: string;
91
+ readonly createdAt: string;
92
+ readonly snapshotId?: string | undefined;
93
+ };
94
+ };
95
+ readonly evidence: {
96
+ readonly recipeHash: string;
97
+ readonly receiptHash: string;
98
+ readonly assetsHash: string;
99
+ readonly runtime: {
100
+ readonly source: string;
101
+ readonly platform: "linux/amd64";
102
+ readonly manifest: string;
103
+ readonly sealantd: string;
104
+ readonly socat: string;
105
+ readonly relay: string;
106
+ };
107
+ readonly daemonRecovery: "supported" | "unknown" | "unsupported";
108
+ readonly executorRecovery: "unverified";
109
+ };
110
+ } | undefined;
61
111
  readonly processUser?: "supported" | "unknown" | "unsupported" | undefined;
62
112
  readonly error?: {
63
113
  readonly message: string;
@@ -146,7 +196,7 @@ export declare const listWorkspacesOp: (query: ListWorkspacesQuery) => Effect.Ef
146
196
  readonly repository?: string | undefined;
147
197
  readonly tag?: string | undefined;
148
198
  readonly runtime?: {
149
- readonly adapter: "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
199
+ readonly adapter: "boat" | "cloudflare" | "docker" | "k3s" | "k8s" | "microvm";
150
200
  readonly resourceId: string;
151
201
  readonly reference: string;
152
202
  readonly status: "failed" | "pending" | "ready" | "retained" | "running" | "stopped";
@@ -167,6 +217,56 @@ export declare const listWorkspacesOp: (query: ListWorkspacesQuery) => Effect.Ef
167
217
  readonly acl: "supported" | "unknown" | "unsupported";
168
218
  } | undefined;
169
219
  } | undefined;
220
+ readonly publication?: {
221
+ readonly kind: "oci";
222
+ readonly publicationId: string;
223
+ readonly image: {
224
+ readonly repository: string;
225
+ readonly tag: string;
226
+ readonly reference: string;
227
+ readonly digestReference: string;
228
+ readonly digest: string;
229
+ };
230
+ } | {
231
+ readonly kind: "microvm";
232
+ readonly publicationId: string;
233
+ readonly image: {
234
+ readonly imageArn: string;
235
+ readonly imageVersion: string;
236
+ readonly planHash: string;
237
+ };
238
+ } | {
239
+ readonly kind: "boat-native";
240
+ readonly publicationId: string;
241
+ readonly snapshot: {
242
+ readonly kind: "boat-saved-snapshot";
243
+ readonly owner: string;
244
+ readonly build: string;
245
+ readonly recipeHash: string;
246
+ readonly receiptHash: string;
247
+ readonly identity: {
248
+ readonly name: string;
249
+ readonly sourceSandboxId: string;
250
+ readonly createdAt: string;
251
+ readonly snapshotId?: string | undefined;
252
+ };
253
+ };
254
+ readonly evidence: {
255
+ readonly recipeHash: string;
256
+ readonly receiptHash: string;
257
+ readonly assetsHash: string;
258
+ readonly runtime: {
259
+ readonly source: string;
260
+ readonly platform: "linux/amd64";
261
+ readonly manifest: string;
262
+ readonly sealantd: string;
263
+ readonly socat: string;
264
+ readonly relay: string;
265
+ };
266
+ readonly daemonRecovery: "supported" | "unknown" | "unsupported";
267
+ readonly executorRecovery: "unverified";
268
+ };
269
+ } | undefined;
170
270
  readonly processUser?: "supported" | "unknown" | "unsupported" | undefined;
171
271
  readonly error?: {
172
272
  readonly message: string;
@@ -412,7 +512,7 @@ export declare const restartWorkspaceOp: (workspaceId: string, payload: RestartW
412
512
  readonly workspaceId: string;
413
513
  readonly runId: string;
414
514
  readonly status: "cancelled" | "failed" | "queued" | "ready" | "retained" | "running" | "stopped";
415
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | Schema.SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
515
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | Schema.SchemaError | import("@sealant/api-contracts").WorkspaceBadGatewayError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError, SealantApiClient>;
416
516
  export declare const inspectWorkspaceImageOp: (payload: InspectWorkspaceImageRequest) => Effect.Effect<{
417
517
  readonly planHash: string;
418
518
  readonly publishedImage?: {
@@ -427,6 +527,56 @@ export declare const inspectWorkspaceImageOp: (payload: InspectWorkspaceImageReq
427
527
  readonly acl: "supported" | "unknown" | "unsupported";
428
528
  } | undefined;
429
529
  } | undefined;
530
+ readonly publication?: {
531
+ readonly kind: "oci";
532
+ readonly publicationId: string;
533
+ readonly image: {
534
+ readonly repository: string;
535
+ readonly tag: string;
536
+ readonly reference: string;
537
+ readonly digestReference: string;
538
+ readonly digest: string;
539
+ };
540
+ } | {
541
+ readonly kind: "microvm";
542
+ readonly publicationId: string;
543
+ readonly image: {
544
+ readonly imageArn: string;
545
+ readonly imageVersion: string;
546
+ readonly planHash: string;
547
+ };
548
+ } | {
549
+ readonly kind: "boat-native";
550
+ readonly publicationId: string;
551
+ readonly snapshot: {
552
+ readonly kind: "boat-saved-snapshot";
553
+ readonly owner: string;
554
+ readonly build: string;
555
+ readonly recipeHash: string;
556
+ readonly receiptHash: string;
557
+ readonly identity: {
558
+ readonly name: string;
559
+ readonly sourceSandboxId: string;
560
+ readonly createdAt: string;
561
+ readonly snapshotId?: string | undefined;
562
+ };
563
+ };
564
+ readonly evidence: {
565
+ readonly recipeHash: string;
566
+ readonly receiptHash: string;
567
+ readonly assetsHash: string;
568
+ readonly runtime: {
569
+ readonly source: string;
570
+ readonly platform: "linux/amd64";
571
+ readonly manifest: string;
572
+ readonly sealantd: string;
573
+ readonly socat: string;
574
+ readonly relay: string;
575
+ };
576
+ readonly daemonRecovery: "supported" | "unknown" | "unsupported";
577
+ readonly executorRecovery: "unverified";
578
+ };
579
+ } | undefined;
430
580
  readonly personLayout: {
431
581
  readonly status: "supported" | "unknown" | "unsupported";
432
582
  readonly missing: readonly string[];
@@ -434,7 +584,7 @@ export declare const inspectWorkspaceImageOp: (payload: InspectWorkspaceImageReq
434
584
  readonly runtime: string;
435
585
  readonly acl: "supported" | "unknown" | "unsupported";
436
586
  };
437
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | Schema.SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
587
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | Schema.SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError | import("@sealant/api-contracts").WorkspaceRuntimeRequirementUnsupportedError | import("@sealant/api-contracts").WorkspaceServiceUnavailableError, SealantApiClient>;
438
588
  export declare const putWorkspaceCredentialsOp: (workspaceId: string, payload: PutWorkspaceCredentialsRequest) => Effect.Effect<{
439
589
  readonly workspaceId: string;
440
590
  readonly runId: string;
@@ -443,6 +443,10 @@ export const makeWorkspace = (ctx, init) => {
443
443
  const details = await ctx.runtime.run(getWorkspaceOp(init.id, ctx.config.hostLocal.ownerUserId));
444
444
  return details.publishedImage === undefined ? null : toWorkspaceImage(details.publishedImage);
445
445
  },
446
+ publication: async () => {
447
+ const details = await ctx.runtime.run(getWorkspaceOp(init.id, ctx.config.hostLocal.ownerUserId));
448
+ return details.publication ?? null;
449
+ },
446
450
  processUser: async () => {
447
451
  const details = await ctx.runtime.run(getWorkspaceOp(init.id, ctx.config.hostLocal.ownerUserId));
448
452
  return details.processUser ?? "unknown";
@@ -516,6 +520,7 @@ export const makeWorkspace = (ctx, init) => {
516
520
  ...(details.publishedImage === undefined
517
521
  ? {}
518
522
  : { image: toWorkspaceImage(details.publishedImage) }),
523
+ ...(details.publication === undefined ? {} : { publication: details.publication }),
519
524
  ...(details.processUser === undefined ? {} : { processUser: details.processUser }),
520
525
  };
521
526
  }
@@ -261,6 +261,7 @@ export const buildCreateWorkspaceRequest = (options, config) => {
261
261
  return {
262
262
  payload: {
263
263
  ownerUserId: config.hostLocal.ownerUserId,
264
+ ...(options.imageScopeId === undefined ? {} : { imageScopeId: options.imageScopeId }),
264
265
  registryId: config.hostLocal.registryId,
265
266
  repository: sanitizeRepoSlug(tail),
266
267
  tag: `sdk-${randomUUID().slice(0, 8)}`,
package/dist/types.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * `SealantNotImplementedError` at runtime, see `./errors.js`).
16
16
  */
17
17
  import type { ReadableStream as NodeReadableStream, WritableStream as NodeWritableStream } from "node:stream/web";
18
- import type { ConnectedAccountLogin, ConnectedAccountLoginClass, ForwardBinding, ForwardResetReason } from "@sealant/api-contracts";
18
+ import type { WorkspacePublication as WireWorkspacePublication, ConnectedAccountLogin, ConnectedAccountLoginClass, ForwardBinding, ForwardResetReason } from "@sealant/api-contracts";
19
19
  /** A request hint. Interactive requests may use the server's reserved capacity. */
20
20
  export type RequestPriority = "normal" | "interactive";
21
21
  /**
@@ -784,6 +784,8 @@ export interface WorkspaceEnvFromSource {
784
784
  readonly name: string;
785
785
  }
786
786
  export interface CreateOptions {
787
+ /** Reuse images within this existing resource domain, subject to current owner membership. */
788
+ readonly imageScopeId?: string;
787
789
  /**
788
790
  * Source git repository to build the workspace around (e.g. `"github.com/acme/billing-service"`).
789
791
  * Exactly one of `repository` or `source` must be provided.
@@ -962,8 +964,8 @@ export interface WorkspaceCreateState {
962
964
  * record at launch and to name in `stop({ completion })`.
963
965
  */
964
966
  export interface WorkspaceRuntimeInfo {
965
- /** The runtime family: `docker`, `k8s`, `k3s`, `cloudflare` or `microvm`. */
966
- readonly kind: "docker" | "k8s" | "k3s" | "cloudflare" | "microvm";
967
+ /** Recorded runtime family. Boat records remain readable while execution is unavailable. */
968
+ readonly kind: "docker" | "k8s" | "k3s" | "cloudflare" | "microvm" | "boat";
967
969
  /** The executor's id on its runtime: the container id, the Pod name, the MicroVM id. */
968
970
  readonly resourceId: string;
969
971
  /** The runtime's name for it (container name, Pod name, MicroVM id). */
@@ -992,6 +994,7 @@ export interface WorkspaceLaunch {
992
994
  readonly launchId?: string;
993
995
  /** The image the executor booted, with its per-person capability; filled in by `ready()`. */
994
996
  readonly image?: WorkspaceImage;
997
+ readonly publication?: WorkspacePublication;
995
998
  /** Whether its processes can be started as a user (`processUser()`); filled in by `ready()`. */
996
999
  readonly processUser?: WorkspaceProcessUserCapability;
997
1000
  }
@@ -1058,6 +1061,8 @@ export interface Workspace {
1058
1061
  runtime(): Promise<WorkspaceRuntimeInfo | null>;
1059
1062
  /** The image the workspace's latest launch booted, with its per-person capability. */
1060
1063
  image(): Promise<WorkspaceImage | null>;
1064
+ /** Exact typed artifact used by this workspace, including native provenance. */
1065
+ publication(): Promise<WorkspacePublication | null>;
1061
1066
  /**
1062
1067
  * Whether this workspace's processes can be started as a person's Linux user (`user` on
1063
1068
  * `exec()` and `sessions.open()`), read now (see {@link WorkspaceProcessUserCapability}).
@@ -1480,6 +1485,8 @@ export interface SealantFeatures {
1480
1485
  */
1481
1486
  readonly connectedAccountApiKeys: boolean;
1482
1487
  }
1488
+ /** Tagged artifact facts reported by the control plane. */
1489
+ export type WorkspacePublication = WireWorkspacePublication;
1483
1490
  /** A published workspace image. */
1484
1491
  export interface WorkspaceImage {
1485
1492
  readonly reference: string;
@@ -1496,6 +1503,7 @@ export interface WorkspaceImageInspection {
1496
1503
  readonly planHash: string;
1497
1504
  /** The latest image published for the plan, when this owner has built one. */
1498
1505
  readonly image?: WorkspaceImage;
1506
+ readonly publication?: WorkspacePublication;
1499
1507
  /** The image's per-person capability (`unknown` when none has been built yet). */
1500
1508
  readonly personLayout: WorkspaceImagePersonLayout;
1501
1509
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealant/sdk-next",
3
- "version": "0.40.0-next.791",
3
+ "version": "0.40.0-next.792",
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,12 +26,12 @@
26
26
  "node": ">=20"
27
27
  },
28
28
  "dependencies": {
29
- "@sealant/api-contracts": "npm:@sealant/api-contracts-next@0.40.0-next.791"
29
+ "@sealant/api-contracts": "npm:@sealant/api-contracts-next@0.40.0-next.792"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "effect": "^4.0.5"
33
33
  },
34
- "gitHead": "b18cfe790bde2ec8f715311c5fa21ac1b2a8e68e",
34
+ "gitHead": "4e2e3b67c44c2836488e314ebbdacd57edac91d0",
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  }