@sealant/sdk-next 0.39.0-next.708 → 0.39.0-next.710

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.
@@ -52,7 +52,7 @@ export declare const createWorkspaceOp: (payload: {
52
52
  } | undefined;
53
53
  readonly replayed?: boolean | undefined;
54
54
  readonly launchId?: string | undefined;
55
- }, import("@sealant/api-contracts").BudgetExceededError | 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>;
55
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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>;
56
56
  export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string | undefined) => Effect.Effect<{
57
57
  readonly workspaceId: string;
58
58
  readonly name: string;
@@ -146,14 +146,14 @@ export declare const getWorkspaceOp: (workspaceId: string, ownerUserId?: string
146
146
  } | undefined;
147
147
  } | undefined;
148
148
  } | undefined;
149
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
149
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
150
150
  export declare const getWorkspaceCreateOp: (idempotencyKey: string, ownerUserId: string) => Effect.Effect<{
151
151
  readonly idempotencyKey: string;
152
152
  readonly state: "cancelled" | "found" | "none" | "pending";
153
153
  readonly workspaceId?: string | undefined;
154
154
  readonly runId?: string | undefined;
155
155
  readonly launchId?: string | undefined;
156
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
156
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
157
157
  export declare const cancelWorkspaceCreateOp: (idempotencyKey: string, payload: {
158
158
  readonly ownerUserId: string;
159
159
  }) => Effect.Effect<{
@@ -162,7 +162,7 @@ export declare const cancelWorkspaceCreateOp: (idempotencyKey: string, payload:
162
162
  readonly workspaceId?: string | undefined;
163
163
  readonly runId?: string | undefined;
164
164
  readonly launchId?: string | undefined;
165
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
165
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
166
166
  export declare const listWorkspacesOp: (query: {
167
167
  readonly ownerUserId: string;
168
168
  readonly status?: "cancelled" | "failed" | "queued" | "ready" | "retained" | "running" | "stopped" | undefined;
@@ -221,7 +221,7 @@ export declare const listWorkspacesOp: (query: {
221
221
  readonly finishedAt?: string | undefined;
222
222
  readonly expiresAt?: string | undefined;
223
223
  }[];
224
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
224
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError, SealantApiClient>;
225
225
  export declare const execWorkspaceOp: (workspaceId: string, payload: {
226
226
  readonly ownerUserId: string;
227
227
  readonly commands: readonly {
@@ -257,7 +257,7 @@ export declare const execWorkspaceOp: (workspaceId: string, payload: {
257
257
  readonly recordDeletedAt?: string | undefined;
258
258
  readonly createdAt: string;
259
259
  readonly updatedAt: string;
260
- }, 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").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
260
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/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>;
261
261
  /** An exec as a Linux user: its own route, which a control plane that cannot run one answers 404. */
262
262
  export declare const execWorkspaceAsUserOp: (workspaceId: string, payload: {
263
263
  readonly ownerUserId: string;
@@ -294,7 +294,7 @@ export declare const execWorkspaceAsUserOp: (workspaceId: string, payload: {
294
294
  readonly recordDeletedAt?: string | undefined;
295
295
  readonly createdAt: string;
296
296
  readonly updatedAt: string;
297
- }, 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").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
297
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/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>;
298
298
  export declare const applyWorkspaceDotfilesOp: (workspaceId: string, payload: {
299
299
  readonly ownerUserId: string;
300
300
  readonly onBehalfOfUserId: string;
@@ -341,7 +341,7 @@ export declare const applyWorkspaceDotfilesOp: (workspaceId: string, payload: {
341
341
  readonly recordDeletedAt?: string | undefined;
342
342
  readonly createdAt: string;
343
343
  readonly updatedAt: string;
344
- }, 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").WorkspaceServiceUnavailableError, SealantApiClient>;
344
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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").WorkspaceServiceUnavailableError, SealantApiClient>;
345
345
  export declare const bindWorkspaceOp: (workspaceId: string, payload: {
346
346
  readonly ownerUserId: string;
347
347
  readonly mountPath?: string | undefined;
@@ -351,7 +351,7 @@ export declare const bindWorkspaceOp: (workspaceId: string, payload: {
351
351
  readonly mountPath: string;
352
352
  readonly subpath: string;
353
353
  }[];
354
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
354
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
355
355
  export declare const flushWorkspaceCaptureOp: (workspaceId: string, payload: {
356
356
  readonly ownerUserId: string;
357
357
  readonly kind?: "final" | "suspend" | undefined;
@@ -407,7 +407,7 @@ export declare const flushWorkspaceCaptureOp: (workspaceId: string, payload: {
407
407
  readonly boundMs: number;
408
408
  } | undefined;
409
409
  readonly ownerMap?: boolean | undefined;
410
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
410
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
411
411
  export declare const getWorkspaceCaptureStatusOp: (workspaceId: string, query: {
412
412
  readonly ownerUserId: string;
413
413
  }) => Effect.Effect<{
@@ -460,7 +460,7 @@ export declare const getWorkspaceCaptureStatusOp: (workspaceId: string, query: {
460
460
  readonly boundMs: number;
461
461
  } | undefined;
462
462
  readonly ownerMap?: boolean | undefined;
463
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
463
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
464
464
  export declare const replanWorkspaceCaptureOp: (workspaceId: string, payload: {
465
465
  readonly ownerUserId: string;
466
466
  readonly expectedOwnerMap?: {
@@ -482,7 +482,7 @@ export declare const replanWorkspaceCaptureOp: (workspaceId: string, payload: {
482
482
  readonly bytesSkipped: number;
483
483
  readonly removed: number;
484
484
  readonly unchanged: boolean;
485
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
485
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
486
486
  export declare const stopWorkspaceOp: (workspaceId: string, payload: {
487
487
  readonly ownerUserId: string;
488
488
  readonly discardUnsaved?: boolean | undefined;
@@ -508,21 +508,21 @@ export declare const stopWorkspaceOp: (workspaceId: string, payload: {
508
508
  readonly outcome: "accepted" | "ignored";
509
509
  readonly detail?: string | undefined;
510
510
  } | undefined;
511
- }, 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").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
511
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/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>;
512
512
  export declare const recoverWorkspaceOp: (workspaceId: string, payload: {
513
513
  readonly ownerUserId: string;
514
514
  }) => Effect.Effect<{
515
515
  readonly workspaceId: string;
516
516
  readonly state: "not-retained" | "requested";
517
517
  readonly recoverable?: boolean | undefined;
518
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
518
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
519
519
  export declare const restartWorkspaceOp: (workspaceId: string, payload: {
520
520
  readonly ownerUserId: string;
521
521
  }) => Effect.Effect<{
522
522
  readonly workspaceId: string;
523
523
  readonly runId: string;
524
524
  readonly status: "cancelled" | "failed" | "queued" | "ready" | "retained" | "running" | "stopped";
525
- }, import("@sealant/api-contracts").BudgetExceededError | 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").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
525
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/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>;
526
526
  export declare const inspectWorkspaceImageOp: (payload: {
527
527
  readonly ownerUserId: string;
528
528
  readonly registryId: string;
@@ -548,7 +548,7 @@ export declare const inspectWorkspaceImageOp: (payload: {
548
548
  readonly runtime: string;
549
549
  readonly acl: "supported" | "unknown" | "unsupported";
550
550
  };
551
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
551
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
552
552
  export declare const putWorkspaceCredentialsOp: (workspaceId: string, payload: {
553
553
  readonly ownerUserId: string;
554
554
  readonly onBehalfOfUserId: string;
@@ -595,7 +595,7 @@ export declare const putWorkspaceCredentialsOp: (workspaceId: string, payload: {
595
595
  readonly code: "connected-account-invalid" | "connected-account-missing" | "connected-account-unsupported" | "login-file-unusable";
596
596
  readonly message: string;
597
597
  }[] | undefined;
598
- }, 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").WorkspaceServiceUnavailableError, SealantApiClient>;
598
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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").WorkspaceServiceUnavailableError, SealantApiClient>;
599
599
  export declare const releaseWorkspaceCredentialsOp: (workspaceId: string, query: {
600
600
  readonly ownerUserId: string;
601
601
  readonly home: string;
@@ -604,7 +604,7 @@ export declare const releaseWorkspaceCredentialsOp: (workspaceId: string, query:
604
604
  readonly runId: string;
605
605
  readonly home: string;
606
606
  readonly released: boolean;
607
- }, 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").WorkspaceServiceUnavailableError, SealantApiClient>;
607
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | 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").WorkspaceServiceUnavailableError, SealantApiClient>;
608
608
  export declare const listWorkspaceCredentialsOp: (workspaceId: string, query: {
609
609
  readonly ownerUserId: string;
610
610
  }) => Effect.Effect<{
@@ -636,14 +636,14 @@ export declare const listWorkspaceCredentialsOp: (workspaceId: string, query: {
636
636
  } | undefined;
637
637
  };
638
638
  }[];
639
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
639
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceConflictError | import("@sealant/api-contracts").WorkspaceForbiddenError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
640
640
  export declare const expireWorkspaceOp: (workspaceId: string, payload: {
641
641
  readonly ownerUserId: string;
642
642
  readonly ttlSeconds?: number | null | undefined;
643
643
  }) => Effect.Effect<{
644
644
  readonly workspaceId: string;
645
645
  readonly expiresAt: string | null;
646
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
646
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").WorkspaceBadRequestError | import("@sealant/api-contracts").WorkspaceInternalServerError | import("@sealant/api-contracts").WorkspaceNotFoundError, SealantApiClient>;
647
647
  export declare const createRunOp: (payload: {
648
648
  readonly workspaceId: string;
649
649
  readonly harnessId: string;
@@ -686,7 +686,7 @@ export declare const createRunOp: (payload: {
686
686
  readonly recordDeletedAt?: string | undefined;
687
687
  readonly createdAt: string;
688
688
  readonly updatedAt: string;
689
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
689
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
690
690
  export declare const getRunOp: (runId: string, ownerUserId?: string | undefined) => Effect.Effect<{
691
691
  readonly runId: string;
692
692
  readonly workspaceId: string;
@@ -714,7 +714,7 @@ export declare const getRunOp: (runId: string, ownerUserId?: string | undefined)
714
714
  readonly recordDeletedAt?: string | undefined;
715
715
  readonly createdAt: string;
716
716
  readonly updatedAt: string;
717
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
717
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
718
718
  export declare const listRunsOp: (query: {
719
719
  readonly workspaceId?: string | undefined;
720
720
  readonly ownerUserId?: string | undefined;
@@ -749,7 +749,7 @@ export declare const listRunsOp: (query: {
749
749
  readonly createdAt: string;
750
750
  readonly updatedAt: string;
751
751
  }[];
752
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("effect/Schema").SchemaError, SealantApiClient>;
752
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("effect/Schema").SchemaError, SealantApiClient>;
753
753
  export declare const updateRunOp: (runId: string, payload: {
754
754
  readonly ownerUserId?: string | undefined;
755
755
  readonly status?: "cancelled" | "completed" | "failed" | "queued" | "running" | undefined;
@@ -789,7 +789,7 @@ export declare const updateRunOp: (runId: string, payload: {
789
789
  readonly recordDeletedAt?: string | undefined;
790
790
  readonly createdAt: string;
791
791
  readonly updatedAt: string;
792
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
792
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
793
793
  export declare const getRunTimelineOp: (runId: string, query: {
794
794
  readonly ownerUserId?: string | undefined;
795
795
  readonly fromSequence?: string | undefined;
@@ -806,7 +806,7 @@ export declare const getRunTimelineOp: (runId: string, query: {
806
806
  readonly processId?: string | undefined;
807
807
  readonly captureMethod: number;
808
808
  readonly confidence: number;
809
- }[], import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
809
+ }[], import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
810
810
  export declare const getRunScrollbackOp: (runId: string, query: {
811
811
  readonly ownerUserId?: string | undefined;
812
812
  readonly processId: string;
@@ -819,7 +819,7 @@ export declare const getRunScrollbackOp: (runId: string, query: {
819
819
  readonly stream: "pty" | "stderr" | "stdout";
820
820
  readonly byteCount: number;
821
821
  readonly contentBase64: string;
822
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
822
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunBadRequestError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
823
823
  export declare const getRunLossOp: (runId: string, ownerUserId?: string | undefined) => Effect.Effect<{
824
824
  readonly runId: string;
825
825
  readonly droppedEventCount: string;
@@ -834,7 +834,7 @@ export declare const getRunLossOp: (runId: string, ownerUserId?: string | undefi
834
834
  readonly detectedVia: "gap" | "marker";
835
835
  readonly reason?: string | undefined;
836
836
  }[];
837
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
837
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
838
838
  export declare const getRunChangesOp: (runId: string, ownerUserId?: string | undefined) => Effect.Effect<{
839
839
  readonly files: readonly {
840
840
  readonly path: string;
@@ -844,7 +844,7 @@ export declare const getRunChangesOp: (runId: string, ownerUserId?: string | und
844
844
  readonly diff: string;
845
845
  readonly available?: boolean | undefined;
846
846
  readonly unavailableReason?: string | undefined;
847
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
847
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").RunInternalServerError | import("@sealant/api-contracts").RunNotFoundError | import("effect/Schema").SchemaError, SealantApiClient>;
848
848
  export declare const createSessionOp: (payload: {
849
849
  readonly workspaceId: string;
850
850
  readonly ownerUserId: string;
@@ -883,7 +883,7 @@ export declare const createSessionOp: (payload: {
883
883
  readonly outputHighWater: string;
884
884
  readonly createdAt: string;
885
885
  readonly endedAt?: string | undefined;
886
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
886
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
887
887
  /** A session as a Linux user: its own route, which a control plane that cannot open one answers 404. */
888
888
  export declare const createSessionAsUserOp: (payload: {
889
889
  readonly workspaceId: string;
@@ -923,7 +923,7 @@ export declare const createSessionAsUserOp: (payload: {
923
923
  readonly outputHighWater: string;
924
924
  readonly createdAt: string;
925
925
  readonly endedAt?: string | undefined;
926
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
926
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
927
927
  export declare const getSessionOp: (sessionId: string, ownerUserId?: string | undefined) => Effect.Effect<{
928
928
  readonly sessionId: string;
929
929
  readonly workspaceId: string;
@@ -946,7 +946,7 @@ export declare const getSessionOp: (sessionId: string, ownerUserId?: string | un
946
946
  readonly outputHighWater: string;
947
947
  readonly createdAt: string;
948
948
  readonly endedAt?: string | undefined;
949
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
949
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
950
950
  export declare const listSessionsOp: (query: {
951
951
  readonly ownerUserId: string;
952
952
  readonly workspaceId?: string | undefined;
@@ -976,7 +976,7 @@ export declare const listSessionsOp: (query: {
976
976
  readonly createdAt: string;
977
977
  readonly endedAt?: string | undefined;
978
978
  }[];
979
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
979
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
980
980
  export declare const getSessionOutputOp: (sessionId: string, query: {
981
981
  readonly ownerUserId?: string | undefined;
982
982
  readonly from?: string | undefined;
@@ -989,26 +989,26 @@ export declare const getSessionOutputOp: (sessionId: string, query: {
989
989
  }[];
990
990
  readonly nextFrom: string;
991
991
  readonly status: "exited" | "failed" | "running" | "starting";
992
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
992
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
993
993
  export declare const sendSessionInputOp: (sessionId: string, payload: {
994
994
  readonly ownerUserId?: string | undefined;
995
995
  readonly dataBase64: string;
996
996
  }) => Effect.Effect<{
997
997
  readonly ok: boolean;
998
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
998
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
999
999
  export declare const resizeSessionOp: (sessionId: string, payload: {
1000
1000
  readonly ownerUserId?: string | undefined;
1001
1001
  readonly cols: number;
1002
1002
  readonly rows: number;
1003
1003
  }) => Effect.Effect<{
1004
1004
  readonly ok: boolean;
1005
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1005
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1006
1006
  export declare const signalSessionOp: (sessionId: string, payload: {
1007
1007
  readonly ownerUserId?: string | undefined;
1008
1008
  readonly signal: number;
1009
1009
  }) => Effect.Effect<{
1010
1010
  readonly ok: boolean;
1011
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1011
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionConflictError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1012
1012
  export declare const closeSessionOp: (sessionId: string, payload: {
1013
1013
  readonly ownerUserId?: string | undefined;
1014
1014
  }) => Effect.Effect<{
@@ -1033,7 +1033,7 @@ export declare const closeSessionOp: (sessionId: string, payload: {
1033
1033
  readonly outputHighWater: string;
1034
1034
  readonly createdAt: string;
1035
1035
  readonly endedAt?: string | undefined;
1036
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1036
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SessionBadGatewayError | import("@sealant/api-contracts").SessionBadRequestError | import("@sealant/api-contracts").SessionForbiddenError | import("@sealant/api-contracts").SessionInternalServerError | import("@sealant/api-contracts").SessionNotFoundError | import("@sealant/api-contracts").SessionUnauthorizedError, SealantApiClient>;
1037
1037
  export declare const createAccessTokenOp: (payload: {
1038
1038
  readonly ownerUserId: string;
1039
1039
  readonly scopes: readonly ("session:input" | "session:read" | "workspace:exec")[];
@@ -1050,7 +1050,7 @@ export declare const createAccessTokenOp: (payload: {
1050
1050
  readonly revokedAt?: string | undefined;
1051
1051
  readonly createdAt: string;
1052
1052
  readonly token: string;
1053
- }, import("@sealant/api-contracts").AccessTokenBadRequestError | import("@sealant/api-contracts").AccessTokenInternalServerError | import("@sealant/api-contracts").AccessTokenNotFoundError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError, SealantApiClient>;
1053
+ }, import("@sealant/api-contracts").AccessTokenBadRequestError | import("@sealant/api-contracts").AccessTokenInternalServerError | import("@sealant/api-contracts").AccessTokenNotFoundError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1054
1054
  export declare const ensureUserOp: (payload: {
1055
1055
  readonly email: string;
1056
1056
  readonly name: string;
@@ -1061,13 +1061,13 @@ export declare const ensureUserOp: (payload: {
1061
1061
  readonly name: string;
1062
1062
  readonly createdAt: string;
1063
1063
  readonly created: boolean;
1064
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").UserBadRequestError | import("@sealant/api-contracts").UserInternalServerError, SealantApiClient>;
1064
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").UserBadRequestError | import("@sealant/api-contracts").UserInternalServerError, SealantApiClient>;
1065
1065
  export declare const getUserOp: (userId: string) => Effect.Effect<{
1066
1066
  readonly userId: string;
1067
1067
  readonly email: string;
1068
1068
  readonly name: string;
1069
1069
  readonly createdAt: string;
1070
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").UserInternalServerError | import("@sealant/api-contracts").UserNotFoundError, SealantApiClient>;
1070
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").UserInternalServerError | import("@sealant/api-contracts").UserNotFoundError, SealantApiClient>;
1071
1071
  export declare const listConnectedAccountsOp: (ownerUserId: string) => Effect.Effect<{
1072
1072
  readonly items: readonly {
1073
1073
  readonly connectedAccountId: string;
@@ -1090,7 +1090,7 @@ export declare const listConnectedAccountsOp: (ownerUserId: string) => Effect.Ef
1090
1090
  readonly lastRefreshOutcome: "failed" | "fresh" | "refreshed" | null;
1091
1091
  };
1092
1092
  }[];
1093
- }, import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError, SealantApiClient>;
1093
+ }, import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1094
1094
  export declare const createConnectedAccountOp: (payload: {
1095
1095
  readonly ownerUserId: string;
1096
1096
  readonly provider: "claude" | "codex" | "github";
@@ -1116,7 +1116,7 @@ export declare const createConnectedAccountOp: (payload: {
1116
1116
  readonly lastRefreshAt: string | null;
1117
1117
  readonly lastRefreshOutcome: "failed" | "fresh" | "refreshed" | null;
1118
1118
  };
1119
- }, import("@sealant/api-contracts").ConnectedAccountBadRequestError | import("@sealant/api-contracts").ConnectedAccountConflictError | import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("@sealant/api-contracts").ConnectedAccountNotFoundError | import("@sealant/api-contracts").ConnectedAccountServiceUnavailableError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError, SealantApiClient>;
1119
+ }, import("@sealant/api-contracts").ConnectedAccountBadRequestError | import("@sealant/api-contracts").ConnectedAccountConflictError | import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("@sealant/api-contracts").ConnectedAccountNotFoundError | import("@sealant/api-contracts").ConnectedAccountServiceUnavailableError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1120
1120
  export declare const archiveConnectedAccountOp: (connectedAccountId: string, ownerUserId: string) => Effect.Effect<{
1121
1121
  readonly connectedAccountId: string;
1122
1122
  readonly ownerUserId: string;
@@ -1137,7 +1137,7 @@ export declare const archiveConnectedAccountOp: (connectedAccountId: string, own
1137
1137
  readonly lastRefreshAt: string | null;
1138
1138
  readonly lastRefreshOutcome: "failed" | "fresh" | "refreshed" | null;
1139
1139
  };
1140
- }, import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("@sealant/api-contracts").ConnectedAccountNotFoundError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError, SealantApiClient>;
1140
+ }, import("@sealant/api-contracts").ConnectedAccountInternalServerError | import("@sealant/api-contracts").ConnectedAccountNotFoundError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1141
1141
  export declare const inferenceRespondOp: (payload: {
1142
1142
  readonly ownerUserId: string;
1143
1143
  readonly credentials?: {
@@ -1182,7 +1182,7 @@ export declare const inferenceRespondOp: (payload: {
1182
1182
  readonly inputTokens: number;
1183
1183
  readonly outputTokens: number;
1184
1184
  } | undefined;
1185
- }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").InferenceBadRequestError | import("@sealant/api-contracts").InferenceConflictError | import("@sealant/api-contracts").InferenceInternalServerError | import("@sealant/api-contracts").InferenceNotFoundError | import("@sealant/api-contracts").InferenceUnavailableError | import("effect/Schema").SchemaError, SealantApiClient>;
1185
+ }, import("@sealant/api-contracts").BudgetExceededError | import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").InferenceBadRequestError | import("@sealant/api-contracts").InferenceConflictError | import("@sealant/api-contracts").InferenceInternalServerError | import("@sealant/api-contracts").InferenceNotFoundError | import("@sealant/api-contracts").InferenceUnavailableError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1186
1186
  export declare const getIndexOp: () => Effect.Effect<{
1187
1187
  readonly name: string;
1188
1188
  readonly version: string;
@@ -1196,7 +1196,7 @@ export declare const getIndexOp: () => Effect.Effect<{
1196
1196
  readonly credentialsPiOpencode?: boolean | undefined;
1197
1197
  readonly captureOwnerMap?: boolean | undefined;
1198
1198
  } | undefined;
1199
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError, SealantApiClient>;
1199
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError, SealantApiClient>;
1200
1200
  export declare const getSetupStateOp: () => Effect.Effect<{
1201
1201
  readonly needsSetup: boolean;
1202
1202
  readonly sshGateway: {
@@ -1204,7 +1204,7 @@ export declare const getSetupStateOp: () => Effect.Effect<{
1204
1204
  readonly port: number;
1205
1205
  readonly usernamePrefix: string;
1206
1206
  } | null;
1207
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SystemInternalServerError, SealantApiClient>;
1207
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SystemInternalServerError, SealantApiClient>;
1208
1208
  export declare const createSshKeyOp: (payload: {
1209
1209
  readonly ownerUserId: string;
1210
1210
  readonly name?: string | undefined;
@@ -1216,7 +1216,7 @@ export declare const createSshKeyOp: (payload: {
1216
1216
  readonly algorithm: string;
1217
1217
  readonly fingerprint: string;
1218
1218
  readonly createdAt: string;
1219
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyBadRequestError | import("@sealant/api-contracts").SshKeyConflictError | import("@sealant/api-contracts").SshKeyInternalServerError | import("@sealant/api-contracts").SshKeyNotFoundError, SealantApiClient>;
1219
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyBadRequestError | import("@sealant/api-contracts").SshKeyConflictError | import("@sealant/api-contracts").SshKeyInternalServerError | import("@sealant/api-contracts").SshKeyNotFoundError, SealantApiClient>;
1220
1220
  export declare const listSshKeysOp: (ownerUserId: string) => Effect.Effect<{
1221
1221
  readonly items: readonly {
1222
1222
  readonly sshKeyId: string;
@@ -1226,7 +1226,7 @@ export declare const listSshKeysOp: (ownerUserId: string) => Effect.Effect<{
1226
1226
  readonly fingerprint: string;
1227
1227
  readonly createdAt: string;
1228
1228
  }[];
1229
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyInternalServerError, SealantApiClient>;
1229
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyInternalServerError, SealantApiClient>;
1230
1230
  export declare const archiveSshKeyOp: (sshKeyId: string, ownerUserId: string) => Effect.Effect<{
1231
1231
  readonly sshKeyId: string;
1232
1232
  readonly ownerUserId: string;
@@ -1234,4 +1234,4 @@ export declare const archiveSshKeyOp: (sshKeyId: string, ownerUserId: string) =>
1234
1234
  readonly algorithm: string;
1235
1235
  readonly fingerprint: string;
1236
1236
  readonly createdAt: string;
1237
- }, import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyInternalServerError | import("@sealant/api-contracts").SshKeyNotFoundError, SealantApiClient>;
1237
+ }, import("effect/unstable/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("effect/Schema").SchemaError | import("@sealant/api-contracts").SshKeyInternalServerError | import("@sealant/api-contracts").SshKeyNotFoundError, SealantApiClient>;
@@ -1,7 +1,8 @@
1
+ import { sessionArgvIssue } from "@sealant/api-contracts";
1
2
  import { applyDotfiles } from "../effect/apply-dotfiles.js";
2
3
  import { execWorkspace } from "../effect/exec-workspace.js";
3
4
  import { bindWorkspaceOp, flushWorkspaceCaptureOp, getWorkspaceCaptureStatusOp, createSessionAsUserOp, createSessionOp, expireWorkspaceOp, getSessionOp, getWorkspaceOp, listSessionsOp, replanWorkspaceCaptureOp, recoverWorkspaceOp, restartWorkspaceOp, listWorkspaceCredentialsOp, putWorkspaceCredentialsOp, releaseWorkspaceCredentialsOp, stopWorkspaceOp, } from "../effect/operations.js";
4
- import { SealantError, SealantNotImplementedError } from "../errors.js";
5
+ import { SealantApiError, SealantError, SealantNotImplementedError } from "../errors.js";
5
6
  import { mapAccountRef } from "../internal/credentials.js";
6
7
  import { parseTtlSeconds } from "../internal/duration.js";
7
8
  import { requireProcessUser } from "../internal/process-user.js";
@@ -262,8 +263,31 @@ const toCaptureDrain = (drain) => ({
262
263
  },
263
264
  }),
264
265
  });
266
+ const REASONED_REFUSALS = new Set([
267
+ "RequestRefusedError",
268
+ "SessionBadRequestError",
269
+ ]);
270
+ /**
271
+ * A control plane older than this SDK refuses an argument that is empty or untrimmed with an empty
272
+ * `400` (and logs the argument). Said here, where the argv is known, so the caller learns why.
273
+ */
274
+ const olderControlPlaneRefusal = (argv, error) => {
275
+ const relaxed = argv.findIndex((word, index) => index > 0 && (word.length === 0 || word.trim() !== word));
276
+ const message = relaxed === -1
277
+ ? "The control plane refused the session with an empty 400 and gave no reason; a control plane older than this SDK does not say which field it refused."
278
+ : `The control plane refused the session with an empty 400. argv[${relaxed}] is empty or has leading or trailing whitespace, and a control plane older than this SDK refuses such an argument; upgrade the control plane.`;
279
+ return new SealantApiError(message, {
280
+ code: error.code,
281
+ ...(error.status === undefined ? {} : { status: error.status }),
282
+ cause: error,
283
+ });
284
+ };
265
285
  export const makeWorkspace = (ctx, init) => {
266
286
  const openSession = async (argv, options) => {
287
+ // The contract's own rule, checked before anything is asked, with the same value-free reason.
288
+ const refused = sessionArgvIssue(argv);
289
+ if (refused !== undefined)
290
+ throw new SealantError(refused, { code: "invalid_argv" });
267
291
  if (options?.user !== undefined)
268
292
  await requireProcessUser(ctx, options.user);
269
293
  const request = {
@@ -280,9 +304,21 @@ export const makeWorkspace = (ctx, init) => {
280
304
  };
281
305
  // As a user: its own route, so a control plane that cannot open one answers 404, never opens
282
306
  // it as the workspace's own user.
283
- const created = await ctx.runtime.run(options?.user === undefined
307
+ const created = await ctx.runtime
308
+ .run(options?.user === undefined
284
309
  ? createSessionOp(request)
285
- : createSessionAsUserOp({ ...request, user: options.user }));
310
+ : createSessionAsUserOp({ ...request, user: options.user }))
311
+ .catch((error) => {
312
+ // A control plane with the rule answers a typed 400 with its reason (`RequestRefusedError`
313
+ // for a request it cannot decode, `SessionBadRequestError` for one it refuses); an empty
314
+ // 400 is one from before it.
315
+ if (error instanceof SealantApiError &&
316
+ error.status === 400 &&
317
+ !REASONED_REFUSALS.has(error.code)) {
318
+ throw olderControlPlaneRefusal(argv, error);
319
+ }
320
+ throw error;
321
+ });
286
322
  return makeInteractiveSession(ctx, created);
287
323
  };
288
324
  const sessions = {
package/dist/types.d.ts CHANGED
@@ -1857,7 +1857,15 @@ export interface SessionAttachment {
1857
1857
  }
1858
1858
  /** Interactive sessions of one workspace: open new ones, reattach to existing ones. */
1859
1859
  export interface WorkspaceSessions {
1860
- /** Opens a PTY session running `argv` (argv[0] is the program). */
1860
+ /**
1861
+ * Opens a PTY session running `argv`. argv[0] is the program, non-empty and trimmed; the rest are
1862
+ * its arguments, passed as an argv array (never through a shell) and taken as any string: empty,
1863
+ * whitespace-led or multi-line. At most 64 words, 131,071 bytes each and 1 MiB in all (UTF-8
1864
+ * bytes), no NUL byte and no lone surrogate (`sessionArgvIssue` and `SESSION_ARGV_MAX_*` in
1865
+ * `@sealant/api-contracts`). An argv the rule refuses throws `SealantError` `invalid_argv` before
1866
+ * anything is sent; a control plane's refusal is `SealantApiError` `RequestRefusedError` with
1867
+ * its reason.
1868
+ */
1861
1869
  open(argv: readonly string[], options?: SessionOptions): Promise<InteractiveSession>;
1862
1870
  /** Reattach to a session by id — works from ANY handle, not just the creating one. */
1863
1871
  get(sessionId: string): Promise<InteractiveSession>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealant/sdk-next",
3
- "version": "0.39.0-next.708",
3
+ "version": "0.39.0-next.710",
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.39.0-next.708"
29
+ "@sealant/api-contracts": "npm:@sealant/api-contracts-next@0.39.0-next.710"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "effect": ">=4.0.0-beta.85 <5"
33
33
  },
34
- "gitHead": "e8ad7f7a3f1b96333e67c980e93c49a764a3f245",
34
+ "gitHead": "5e7c33bdaf78dd6aaf0b4b64332e803f3ce8d396",
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  }