@tangle-network/sandbox 0.5.0 → 0.6.1

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.
@@ -668,6 +668,16 @@ interface CreateSandboxOptions {
668
668
  * ```
669
669
  */
670
670
  network?: NetworkConfig;
671
+ /**
672
+ * Egress firewall policy for controlling outbound internet access.
673
+ *
674
+ * When omitted on a team sandbox, the team's default egress policy is
675
+ * inherited. When omitted on a personal sandbox, the platform default
676
+ * (`{ mode: "open" }`) is used.
677
+ *
678
+ * @see {@link EgressPolicy}
679
+ */
680
+ egressPolicy?: EgressPolicy;
671
681
  /**
672
682
  * Git repository to clone at sandbox creation.
673
683
  *
@@ -956,6 +966,10 @@ interface SandboxInfo {
956
966
  expiresAt?: Date;
957
967
  /** Error message if status is 'failed' */
958
968
  error?: string;
969
+ /** Resolved egress policy */
970
+ egressPolicy?: EgressPolicy;
971
+ /** Source of the egress policy */
972
+ egressPolicySource?: "sandbox" | "team" | "platform";
959
973
  }
960
974
  /**
961
975
  * Raw TEE attestation evidence returned by the sandbox runtime.
@@ -1768,6 +1782,53 @@ interface DispatchedSession {
1768
1782
  * dispatch was a no-op (idempotency). */
1769
1783
  alreadyExisted: boolean;
1770
1784
  }
1785
+ /**
1786
+ * Options for `box.driveTurn()` — one settle/poll/dispatch pass over a
1787
+ * detached turn. Inherits the full prompt surface (`backend`, `model`,
1788
+ * `turnId`, …) so the dispatch leg configures the run exactly like
1789
+ * `box.dispatchPrompt()` would.
1790
+ */
1791
+ interface DriveTurnOptions extends DispatchPromptOptions {
1792
+ /** Deterministic session id — required, it is the resume key. Every
1793
+ * tick for the same logical turn MUST pass the same id so a re-invoke
1794
+ * after a crash finds the in-flight session instead of starting a
1795
+ * second agent run. */
1796
+ sessionId: string;
1797
+ /** Turn idempotency key for the platform's completed-turn cache.
1798
+ * Defaults to `sessionId`, which is correct for the one-turn-per-
1799
+ * session shape detached drivers use. */
1800
+ turnId?: string;
1801
+ /** Wall-clock cap in milliseconds, measured from the session's
1802
+ * `startedAt` (falling back to `createdAt`). When a still-running
1803
+ * session exceeds it, `driveTurn` cancels the session and reports
1804
+ * `state: "failed"` — bounding unattended runs that would otherwise
1805
+ * stall forever (e.g. an interactive question nothing will answer).
1806
+ * Omit for no cap. */
1807
+ wallCapMs?: number;
1808
+ }
1809
+ /**
1810
+ * Returned by `box.driveTurn()` — where the detached turn stands after
1811
+ * one pass. Discriminated on `state`:
1812
+ * - `completed` — the turn finished with a text payload; `result` is
1813
+ * the full cached AgentExecutionResult-shape record.
1814
+ * - `running` — the session is queued or executing; re-invoke after a
1815
+ * delay of your choosing.
1816
+ * - `failed` — terminal and deterministic: a failed/cancelled session,
1817
+ * a wall-cap cancellation, or a completed turn that carried no text.
1818
+ * Re-invoking will not change the outcome.
1819
+ */
1820
+ type TurnDriveResult = {
1821
+ state: "completed"; /** Final assistant text of the turn. */
1822
+ text: string; /** The full turn payload (text, toolInvocations, tokenUsage, etc.). */
1823
+ result: Record<string, unknown>;
1824
+ } | {
1825
+ state: "running"; /** When the session began executing, if the runtime reported it. */
1826
+ startedAt?: Date; /** Milliseconds since `startedAt` at the moment of the poll. */
1827
+ elapsedMs?: number;
1828
+ } | {
1829
+ state: "failed"; /** Human-readable reason the turn is deterministically failed. */
1830
+ error: string;
1831
+ };
1771
1832
  /**
1772
1833
  * Scope of a `box.mintScopedToken()` request. Each value narrows the
1773
1834
  * token's authority compared to the full sandbox bearer.
@@ -2669,13 +2730,14 @@ interface DriverInfo {
2669
2730
  * - `"hermes"` — Hermes inference-router agent.
2670
2731
  * - `"forge"` — Forge (forgecode.dev, tailcallhq) multi-provider coding agent.
2671
2732
  * - `"openclaw"` — OpenClaw dispatcher that routes to claude-cli/codex-cli/gemini-cli.
2733
+ * - `"nanoclaw"` — NanoClaw local socket bridge backend.
2672
2734
  * - `"acp"` — Agent Client Protocol bridge — fronts any ACP-compliant
2673
2735
  * agent binary (claude-agent-acp, codex-acp, gemini, openclaw acp).
2674
2736
  * Pick the backing agent via config.subAgent.
2675
2737
  * - `"cursor"` — Cursor Agent SDK local/cloud backend.
2676
2738
  * - `"cli-base"` — Minimal CLI-only (no AI agent).
2677
2739
  */
2678
- type BackendType = "opencode" | "claude-code" | "kimi-code" | "codex" | "amp" | "factory-droids" | "pi" | "hermes" | "forge" | "openclaw" | "acp" | "cursor" | "cli-base";
2740
+ type BackendType = "opencode" | "claude-code" | "kimi-code" | "codex" | "amp" | "factory-droids" | "pi" | "hermes" | "forge" | "openclaw" | "nanoclaw" | "acp" | "cursor" | "cli-base";
2679
2741
  /**
2680
2742
  * MCP (Model Context Protocol) server configuration.
2681
2743
  */
@@ -2924,6 +2986,89 @@ interface NetworkConfig {
2924
2986
  */
2925
2987
  ports?: number[];
2926
2988
  }
2989
+ /**
2990
+ * Egress firewall policy for controlling outbound internet access.
2991
+ *
2992
+ * Applied at sandbox creation and mutable at runtime via `box.egress.update()`.
2993
+ * The policy is enforced by the sandbox-side iron-proxy (layer-7 HTTP/HTTPS
2994
+ * filter) and is independent of `network` (which controls layer-3/4 rules).
2995
+ *
2996
+ * @example Open mode — default, all outbound allowed
2997
+ * ```typescript
2998
+ * egressPolicy: { mode: "open" }
2999
+ * ```
3000
+ *
3001
+ * @example Strict mode — only allowlisted domains
3002
+ * ```typescript
3003
+ * egressPolicy: {
3004
+ * mode: "strict",
3005
+ * allowDomains: ["api.github.com", "pypi.org"],
3006
+ * }
3007
+ * ```
3008
+ *
3009
+ * @example Blocked mode — no outbound internet
3010
+ * ```typescript
3011
+ * egressPolicy: { mode: "blocked" }
3012
+ * ```
3013
+ */
3014
+ interface EgressPolicy {
3015
+ /** Egress mode */
3016
+ mode: "open" | "strict" | "blocked";
3017
+ /**
3018
+ * Additional allowed domains in strict mode.
3019
+ * These are merged with the platform default allowlist.
3020
+ * Ignored in `open` and `blocked` modes.
3021
+ */
3022
+ allowDomains?: string[];
3023
+ /**
3024
+ * Denied domains. Only enforced when the proxy supports denylist transforms.
3025
+ * @deprecated Deferred — not supported by iron-proxy v0.41.
3026
+ */
3027
+ denyDomains?: string[];
3028
+ /**
3029
+ * Allowed CIDR ranges. Only enforced when the proxy supports CIDR passthrough.
3030
+ * @deprecated Deferred — not supported by iron-proxy v0.41.
3031
+ */
3032
+ allowCidrs?: string[];
3033
+ }
3034
+ /**
3035
+ * Egress policy manager for runtime egress configuration.
3036
+ * Access via `sandbox.egress`.
3037
+ *
3038
+ * @example Read current egress policy
3039
+ * ```typescript
3040
+ * const policy = await box.egress.get();
3041
+ * console.log(policy.mode); // "open" | "strict" | "blocked"
3042
+ * ```
3043
+ *
3044
+ * @example Update egress policy at runtime
3045
+ * ```typescript
3046
+ * await box.egress.update({ mode: "strict", allowDomains: ["api.github.com"] });
3047
+ * ```
3048
+ */
3049
+ interface EgressManager {
3050
+ /**
3051
+ * Get the sandbox's current egress policy.
3052
+ *
3053
+ * @returns Resolved egress policy and its source
3054
+ */
3055
+ get(): Promise<{
3056
+ policy: EgressPolicy;
3057
+ source: "sandbox" | "team" | "platform";
3058
+ }>;
3059
+ /**
3060
+ * Update the sandbox's egress policy at runtime.
3061
+ *
3062
+ * The proxy container is restarted to apply the new policy (~2–5s downtime).
3063
+ *
3064
+ * @param policy - New egress policy to apply
3065
+ * @returns Updated policy and source
3066
+ */
3067
+ update(policy: EgressPolicy): Promise<{
3068
+ policy: EgressPolicy;
3069
+ source: "sandbox" | "team" | "platform";
3070
+ }>;
3071
+ }
2927
3072
  /**
2928
3073
  * Network manager for runtime network configuration.
2929
3074
  * Access via `sandbox.network`.
@@ -4093,6 +4238,35 @@ declare function buildSandboxMcpConfig(options: BuildSandboxMcpConfigOptions): {
4093
4238
  serverName: string;
4094
4239
  config: SandboxMcpConfig;
4095
4240
  };
4241
+ /**
4242
+ * Default name of the control-plane MCP server entry. Distinct from the per-
4243
+ * sandbox runtime server (`SANDBOX_MCP_SERVER_NAME`): the sandbox surface
4244
+ * operates INSIDE one sandbox (`run_code`/`exec`/`read`/`write`), while this one
4245
+ * operates ACROSS the account (sandboxes, workflows, integrations, usage).
4246
+ */
4247
+ declare const CONTROL_PLANE_MCP_SERVER_NAME = "tangle-control-plane";
4248
+ interface BuildControlPlaneMcpConfigOptions {
4249
+ /** Public platform URL where `/mcp` is reachable. No trailing slash. */
4250
+ platformUrl: string;
4251
+ /**
4252
+ * A Tangle account API key scoped to the control-plane operations you need
4253
+ * (e.g. `read`, `workflows:write`). Sent on every request as a Bearer token.
4254
+ */
4255
+ apiKey: string;
4256
+ /** Override the entry name. Defaults to CONTROL_PLANE_MCP_SERVER_NAME. */
4257
+ serverName?: string;
4258
+ }
4259
+ /**
4260
+ * Build the canonical `mcpServers` config for the public control-plane MCP
4261
+ * endpoint — the JSON a user pastes into Claude Desktop / Cursor / claude-code
4262
+ * to drive their Tangle account from their own agent. Pure function; mirrors
4263
+ * `buildSandboxMcpConfig` but carries an account API key instead of a per-
4264
+ * sandbox capability token.
4265
+ */
4266
+ declare function buildControlPlaneMcpConfig(options: BuildControlPlaneMcpConfigOptions): {
4267
+ serverName: string;
4268
+ config: SandboxMcpConfig;
4269
+ };
4096
4270
  //#endregion
4097
4271
  //#region src/session.d.ts
4098
4272
  /**
@@ -4777,10 +4951,27 @@ declare class SandboxInstance {
4777
4951
  * ```
4778
4952
  */
4779
4953
  get network(): NetworkManager;
4954
+ /**
4955
+ * Egress policy manager for controlling outbound internet access.
4956
+ *
4957
+ * @example Read current egress policy
4958
+ * ```typescript
4959
+ * const { policy, source } = await box.egress.get();
4960
+ * console.log(policy.mode, source);
4961
+ * ```
4962
+ *
4963
+ * @example Update egress policy at runtime
4964
+ * ```typescript
4965
+ * await box.egress.update({ mode: "strict", allowDomains: ["api.github.com"] });
4966
+ * ```
4967
+ */
4968
+ get egress(): EgressManager;
4780
4969
  private networkUpdate;
4781
4970
  private networkExposePort;
4782
4971
  private networkListUrls;
4783
4972
  private networkGetConfig;
4973
+ private egressGet;
4974
+ private egressUpdate;
4784
4975
  /**
4785
4976
  * Validate CIDR notation (IPv4 and IPv6)
4786
4977
  */
@@ -5132,6 +5323,31 @@ declare class SandboxInstance {
5132
5323
  findCompletedTurn(turnId: string, opts: {
5133
5324
  sessionId: string;
5134
5325
  }): Promise<CompletedTurnResult | null>;
5326
+ /**
5327
+ * Drive a detached turn forward by exactly one settle → poll → dispatch
5328
+ * pass and report where it stands. Built for tick-based callers —
5329
+ * Cloudflare Workflows steps, queue consumers, crons — that re-invoke
5330
+ * on their own schedule instead of holding a stream open. One
5331
+ * invocation never loops, never sleeps, and never keeps a connection
5332
+ * alive past the pass.
5333
+ *
5334
+ * The pass resolves to the first of:
5335
+ * 1. The completed-turn cache has `turnId` → `completed`, or `failed`
5336
+ * when the cached payload carries no text — that result is final,
5337
+ * so a retry cannot improve it.
5338
+ * 2. The session is queued/running → `running`, after enforcing
5339
+ * `wallCapMs`: a session past the cap is cancelled and reported
5340
+ * `failed`.
5341
+ * 3. The session is terminal without a cached turn → settle from the
5342
+ * session result; an unsuccessful result is `failed`.
5343
+ * 4. No session exists → dispatch fire-and-detach (idempotent on
5344
+ * `sessionId`, exactly like `dispatchPrompt`) → `running`.
5345
+ *
5346
+ * `failed` is always deterministic: re-invoking with the same ids
5347
+ * returns the same outcome rather than starting a second agent run, so
5348
+ * callers can treat it as terminal without their own retry bookkeeping.
5349
+ */
5350
+ driveTurn(message: string | PromptInputPart[], opts: DriveTurnOptions): Promise<TurnDriveResult>;
5135
5351
  /**
5136
5352
  * Mint a scoped, time-bounded JWT for direct browser access to this
5137
5353
  * sandbox (Issue #913 Gap 1). Authority is the caller's
@@ -5154,4 +5370,4 @@ declare class SandboxInstance {
5154
5370
  _sessionCancel(id: string): Promise<void>;
5155
5371
  }
5156
5372
  //#endregion
5157
- export { DriverConfig as $, SandboxTraceExport as $n, PromptResult as $t, BatchTask as A, SandboxFleetMachineRecord as An, UploadProgress as Ar, IntelligenceReportWindow as At, CompletedTurnResult as B, SandboxFleetTraceOptions as Bn, AgentProfilePrompt as Br, PermissionLevel as Bt, BackendInfo as C, SandboxFleetDispatchResponse as Cn, TeeAttestationResponse as Cr, GitStatus as Ct, BatchEvent as D, SandboxFleetIntelligenceEnvelope as Dn, ToolsConfig as Dr, IntelligenceReportBudget as Dt, BackendType as E, SandboxFleetInfo as En, TokenRefreshHandler as Er, IntelligenceReport as Et, CodeExecutionOptions as F, SandboxFleetPolicy as Fn, AgentProfileConfidential as Fr, McpServerConfig as Ft, CreateSandboxFleetWithCoordinatorOptions as G, SandboxFleetWorkspaceSnapshotResult as Gn, AgentSubagentProfile as Gr, ProcessInfo as Gt, CreateRequestOptions as H, SandboxFleetWorkspace as Hn, AgentProfileResources as Hr, PreviewLinkInfo as Ht, CodeExecutionResult as I, SandboxFleetToken as In, AgentProfileFileMount as Ir, MintScopedTokenOptions as It, DirectoryPermission as J, SandboxPermissionsConfig as Jn, defineInlineResource as Jr, ProcessSignal as Jt, CreateSandboxOptions as K, SandboxInfo as Kn, defineAgentProfile as Kr, ProcessLogEntry as Kt, CodeLanguage as L, SandboxFleetTraceBundle as Ln, AgentProfileMcpServer as Lr, MkdirOptions as Lt, CheckpointInfo as M, SandboxFleetManifest as Mn, WaitForOptions as Mr, ListOptions as Mt, CheckpointOptions as N, SandboxFleetManifestMachine as Nn, AgentProfile as Nr, ListSandboxFleetOptions as Nt, BatchOptions as O, SandboxFleetMachine as On, UpdateUserOptions as Or, IntelligenceReportCompareTo as Ot, CheckpointResult as P, SandboxFleetOperationsSummary as Pn, AgentProfileCapabilities as Pr, ListSandboxOptions as Pt, DownloadProgress as Q, SandboxTraceEvent as Qn, PromptOptions as Qt, CodeResult as R, SandboxFleetTraceEvent as Rn, AgentProfileModelHints as Rr, NetworkConfig as Rt, BackendConfig as S, SandboxFleetDispatchFailureClass as Sn, TeeAttestationReport as Sr, GitDiff as St, BackendStatus as T, SandboxFleetDriverTimings as Tn, TeePublicKeyResponse as Tr, InstalledTool as Tt, CreateSandboxFleetOptions as U, SandboxFleetWorkspaceReconcileResult as Un, AgentProfileValidationIssue as Ur, PreviewLinkManager as Ut, CreateIntelligenceReportOptions as V, SandboxFleetUsage as Vn, AgentProfileResourceRef as Vr, PermissionsManager as Vt, CreateSandboxFleetTokenOptions as W, SandboxFleetWorkspaceRestoreResult as Wn, AgentProfileValidationResult as Wr, Process as Wt, DispatchedSession as X, SandboxStatus as Xn, ProcessStatus as Xt, DispatchPromptOptions as Y, SandboxResources as Yn, mergeAgentProfiles as Yr, ProcessSpawnOptions as Yt, DownloadOptions as Z, SandboxTraceBundle as Zn, PromptInputPart as Zt, AcceleratorKind as _, SandboxEnvironment as _n, StorageConfig as _r, ForkResult as _t, TraceExportSink as a, PublicTemplateVersionInfo as an, SearchOptions as ar, FileInfo as at, AttachSandboxFleetMachineOptions as b, SandboxFleetArtifactSpec as bn, TaskResult as br, GitCommit as bt, otelTraceIdForTangleTrace as c, ReapExpiredSandboxFleetsOptions as cn, SessionEventStreamOptions as cr, FleetDispatchResultBuffer as ct, BuildSandboxMcpConfigOptions as d, ReconcileSandboxFleetsResult as dn, SessionMessage as dr, FleetExecDispatchOptions as dt, ProvisionEvent as en, SandboxTraceOptions as er, DriverInfo as et, SANDBOX_MCP_SERVER_NAME as f, RunCodeOptions as fn, SessionStatus as fr, FleetExecDispatchResult as ft, buildSandboxMcpConfig as g, SandboxConnection as gn, SshKeysManager as gr, ForkOptions as gt, SandboxMcpServerEntry as h, SandboxClientConfig as hn, SnapshotResult as hr, FleetPromptDispatchResult as ht, TraceExportResult as i, PublicTemplateInfo as in, SearchMatch as ir, ExecResult as it, BatchTaskResult as j, SandboxFleetMachineSpec as jn, UsageInfo as jr, ListMessagesOptions as jt, BatchResult as k, SandboxFleetMachineMeteredUsage as kn, UploadOptions as kr, IntelligenceReportSubjectType as kt, toOtelJson as l, ReapExpiredSandboxFleetsResult as ln, SessionInfo as lr, FleetDispatchResultBufferOptions as lt, SandboxMcpEndpoint as m, SSHCredentials as mn, SnapshotOptions as mr, FleetPromptDispatchOptions as mt, SandboxInstance as n, ProvisionStatus as nn, ScopedToken as nr, EventStreamOptions as nt, buildTraceExportPayload as o, PublishPublicTemplateOptions as on, SecretInfo as or, FileSystem as ot, SandboxMcpConfig as p, SSHCommandDescriptor as pn, SnapshotInfo as pr, FleetMachineId as pt, DeleteOptions as q, SandboxIntelligenceEnvelope as qn, defineGitHubResource as qr, ProcessManager as qt, TraceExportFormat as r, ProvisionStep as rn, ScopedTokenScope as rr, ExecOptions as rt, exportTraceBundle as s, PublishPublicTemplateVersionOptions as sn, SecretsManager as sr, FleetDispatchCancelResult as st, HttpClient as t, ProvisionResult as tn, SandboxUser as tr, DriverType as tt, SandboxSession as u, ReconcileSandboxFleetsOptions as un, SessionListOptions as ur, FleetDispatchStreamOptions as ut, AccessPolicyRule as v, SandboxEvent as vn, SubscriptionInfo as vr, GitAuth as vt, BackendManager as w, SandboxFleetDriverCapability as wn, TeePublicKey as wr, GpuType as wt, BackendCapabilities as x, SandboxFleetCostEstimate as xn, TeeAttestationOptions as xr, GitConfig as xt, AddUserOptions as y, SandboxFleetArtifact as yn, TaskOptions as yr, GitBranch as yt, CodeResultPart as z, SandboxFleetTraceExport as zn, AgentProfilePermissionValue as zr, NetworkManager as zt };
5373
+ export { DispatchedSession as $, SandboxIntelligenceEnvelope as $n, defineAgentProfile as $r, ProcessManager as $t, BatchEvent as A, SandboxFleetDriverCapability as An, TeePublicKey as Ar, GpuType as At, CodeLanguage as B, SandboxFleetOperationsSummary as Bn, AgentProfile as Br, ListSandboxOptions as Bt, AttachSandboxFleetMachineOptions as C, SandboxEnvironment as Cn, StorageConfig as Cr, ForkResult as Ct, BackendManager as D, SandboxFleetCostEstimate as Dn, TeeAttestationOptions as Dr, GitConfig as Dt, BackendInfo as E, SandboxFleetArtifactSpec as En, TaskResult as Er, GitCommit as Et, CheckpointInfo as F, SandboxFleetMachineMeteredUsage as Fn, UpdateUserOptions as Fr, IntelligenceReportSubjectType as Ft, CreateRequestOptions as G, SandboxFleetTraceExport as Gn, AgentProfileModelHints as Gr, NetworkManager as Gt, CodeResultPart as H, SandboxFleetToken as Hn, AgentProfileConfidential as Hr, MintScopedTokenOptions as Ht, CheckpointOptions as I, SandboxFleetMachineRecord as In, UploadOptions as Ir, IntelligenceReportWindow as It, CreateSandboxFleetWithCoordinatorOptions as J, SandboxFleetWorkspace as Jn, AgentProfileResourceRef as Jr, PreviewLinkInfo as Jt, CreateSandboxFleetOptions as K, SandboxFleetTraceOptions as Kn, AgentProfilePermissionValue as Kr, PermissionLevel as Kt, CheckpointResult as L, SandboxFleetMachineSpec as Ln, UploadProgress as Lr, ListMessagesOptions as Lt, BatchResult as M, SandboxFleetInfo as Mn, TokenRefreshHandler as Mr, IntelligenceReport as Mt, BatchTask as N, SandboxFleetIntelligenceEnvelope as Nn, ToolsConfig as Nr, IntelligenceReportBudget as Nt, BackendStatus as O, SandboxFleetDispatchFailureClass as On, TeeAttestationReport as Or, GitDiff as Ot, BatchTaskResult as P, SandboxFleetMachine as Pn, TurnDriveResult as Pr, IntelligenceReportCompareTo as Pt, DispatchPromptOptions as Q, SandboxInfo as Qn, AgentSubagentProfile as Qr, ProcessLogEntry as Qt, CodeExecutionOptions as R, SandboxFleetManifest as Rn, UsageInfo as Rr, ListOptions as Rt, AddUserOptions as S, SandboxConnection as Sn, SshKeysManager as Sr, ForkOptions as St, BackendConfig as T, SandboxFleetArtifact as Tn, TaskOptions as Tr, GitBranch as Tt, CompletedTurnResult as U, SandboxFleetTraceBundle as Un, AgentProfileFileMount as Ur, MkdirOptions as Ut, CodeResult as V, SandboxFleetPolicy as Vn, AgentProfileCapabilities as Vr, McpServerConfig as Vt, CreateIntelligenceReportOptions as W, SandboxFleetTraceEvent as Wn, AgentProfileMcpServer as Wr, NetworkConfig as Wt, DeleteOptions as X, SandboxFleetWorkspaceRestoreResult as Xn, AgentProfileValidationIssue as Xr, Process as Xt, CreateSandboxOptions as Y, SandboxFleetWorkspaceReconcileResult as Yn, AgentProfileResources as Yr, PreviewLinkManager as Yt, DirectoryPermission as Z, SandboxFleetWorkspaceSnapshotResult as Zn, AgentProfileValidationResult as Zr, ProcessInfo as Zt, SandboxMcpServerEntry as _, ReconcileSandboxFleetsResult as _n, SessionMessage as _r, FleetExecDispatchOptions as _t, TraceExportSink as a, PromptResult as an, SandboxTraceExport as ar, DriverType as at, AcceleratorKind as b, SSHCredentials as bn, SnapshotOptions as br, FleetPromptDispatchOptions as bt, otelTraceIdForTangleTrace as c, ProvisionStatus as cn, ScopedToken as cr, EventStreamOptions as ct, BuildControlPlaneMcpConfigOptions as d, PublicTemplateVersionInfo as dn, SearchOptions as dr, FileInfo as dt, defineGitHubResource as ei, ProcessSignal as en, SandboxPermissionsConfig as er, DownloadOptions as et, BuildSandboxMcpConfigOptions as f, PublishPublicTemplateOptions as fn, SecretInfo as fr, FileSystem as ft, SandboxMcpEndpoint as g, ReconcileSandboxFleetsOptions as gn, SessionListOptions as gr, FleetDispatchStreamOptions as gt, SandboxMcpConfig as h, ReapExpiredSandboxFleetsResult as hn, SessionInfo as hr, FleetDispatchResultBufferOptions as ht, TraceExportResult as i, PromptOptions as in, SandboxTraceEvent as ir, DriverInfo as it, BatchOptions as j, SandboxFleetDriverTimings as jn, TeePublicKeyResponse as jr, InstalledTool as jt, BackendType as k, SandboxFleetDispatchResponse as kn, TeeAttestationResponse as kr, GitStatus as kt, toOtelJson as l, ProvisionStep as ln, ScopedTokenScope as lr, ExecOptions as lt, SANDBOX_MCP_SERVER_NAME as m, ReapExpiredSandboxFleetsOptions as mn, SessionEventStreamOptions as mr, FleetDispatchResultBuffer as mt, SandboxInstance as n, mergeAgentProfiles as ni, ProcessStatus as nn, SandboxStatus as nr, DriveTurnOptions as nt, buildTraceExportPayload as o, ProvisionEvent as on, SandboxTraceOptions as or, EgressManager as ot, CONTROL_PLANE_MCP_SERVER_NAME as p, PublishPublicTemplateVersionOptions as pn, SecretsManager as pr, FleetDispatchCancelResult as pt, CreateSandboxFleetTokenOptions as q, SandboxFleetUsage as qn, AgentProfilePrompt as qr, PermissionsManager as qt, TraceExportFormat as r, PromptInputPart as rn, SandboxTraceBundle as rr, DriverConfig as rt, exportTraceBundle as s, ProvisionResult as sn, SandboxUser as sr, EgressPolicy as st, HttpClient as t, defineInlineResource as ti, ProcessSpawnOptions as tn, SandboxResources as tr, DownloadProgress as tt, SandboxSession as u, PublicTemplateInfo as un, SearchMatch as ur, ExecResult as ut, buildControlPlaneMcpConfig as v, RunCodeOptions as vn, SessionStatus as vr, FleetExecDispatchResult as vt, BackendCapabilities as w, SandboxEvent as wn, SubscriptionInfo as wr, GitAuth as wt, AccessPolicyRule as x, SandboxClientConfig as xn, SnapshotResult as xr, FleetPromptDispatchResult as xt, buildSandboxMcpConfig as y, SSHCommandDescriptor as yn, SnapshotInfo as yr, FleetMachineId as yt, CodeExecutionResult as z, SandboxFleetManifestMachine as zn, WaitForOptions as zr, ListSandboxFleetOptions as zt };