@tangle-network/sandbox 0.60.36-develop.20261011055857.b608789 → 0.60.36-develop.20261011062548.c10773e

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.
@@ -1,7 +1,7 @@
1
- import { _ as SandboxSession, h as SandboxTaskSession, r as SandboxInstance } from "../sandbox-Dw9YNtU4.js";
1
+ import { _ as SandboxSession, h as SandboxTaskSession, r as SandboxInstance } from "../sandbox-BQf4G_7z.js";
2
2
  import { D as CodeExecutionResult, E as CodeExecutionOptions, Ji as SessionInfo, Jr as SandboxFleetParent, O as CodeLanguage, Xi as SessionListOptions, d as BackendConfig, k as CodeResultPart, oo as BackendType } from "../types-C0XwJqxx.js";
3
- import { i as Sandbox } from "../client-CO5ShEdk.js";
4
- import { u as PreviewAuthorizer } from "../preview-DNAuiZly.js";
3
+ import { i as Sandbox } from "../client-CPt8NJRl.js";
4
+ import { u as PreviewAuthorizer } from "../preview-Ce8eC44V.js";
5
5
  import * as _$_modelcontextprotocol_sdk_server_index_js0 from "@modelcontextprotocol/sdk/server/index.js";
6
6
  import { JSONSchema } from "zod/v4/core";
7
7
  import { ToolSet } from "ai";
@@ -1,8 +1,8 @@
1
1
  import { a as TOOL_SPECS, i as ALL_TOOL_SPECS, o as serializeToolResult, r as bindToolSpecs, t as createMcpServer } from "../mcp-local-DjryqUiY.js";
2
2
  import { E as assertCurrentBackendType } from "../interactive-controller-Dxt5sW2N.js";
3
3
  import { h as StateError, l as NotFoundError, v as ValidationError } from "../errors-Cq4hMysQ.js";
4
- import { n as Sandbox } from "../client-B8OutXq2.js";
5
- import { t as SandboxInstance } from "../sandbox-CfGVI_xk.js";
4
+ import { n as Sandbox } from "../client-_Xbp4cHc.js";
5
+ import { t as SandboxInstance } from "../sandbox-DNwEDkL2.js";
6
6
  import { z } from "zod";
7
7
  //#region src/agent/instances.ts
8
8
  const managers = /* @__PURE__ */ new WeakMap();
@@ -1,2 +1,2 @@
1
- import { _ as publishAgentPreview, a as previewOperationTool, c as AgentPreviewOptions, d as PreviewExecutionContext, f as PublishAgentPreviewOptions, g as listAgentPreviews, h as getAgentPreview, i as PreviewTool, l as PreviewAuthorizationRequest, m as ensureAgentPreview, n as PREVIEW_MCP_ALIAS, o as previewToolsForProfile, p as assertPreviewId, r as PREVIEW_TOOLS, s as AgentPreviewError, t as servePreviewMcp, u as PreviewAuthorizer, v as removeAgentPreview, y as resolveSelfSandbox } from "../preview-DNAuiZly.js";
1
+ import { _ as publishAgentPreview, a as previewOperationTool, c as AgentPreviewOptions, d as PreviewExecutionContext, f as PublishAgentPreviewOptions, g as listAgentPreviews, h as getAgentPreview, i as PreviewTool, l as PreviewAuthorizationRequest, m as ensureAgentPreview, n as PREVIEW_MCP_ALIAS, o as previewToolsForProfile, p as assertPreviewId, r as PREVIEW_TOOLS, s as AgentPreviewError, t as servePreviewMcp, u as PreviewAuthorizer, v as removeAgentPreview, y as resolveSelfSandbox } from "../preview-Ce8eC44V.js";
2
2
  export { AgentPreviewError, AgentPreviewOptions, PREVIEW_MCP_ALIAS, PREVIEW_TOOLS, PreviewAuthorizationRequest, PreviewAuthorizer, PreviewExecutionContext, PreviewTool, PublishAgentPreviewOptions, assertPreviewId, ensureAgentPreview, getAgentPreview, listAgentPreviews, previewOperationTool, previewToolsForProfile, publishAgentPreview, removeAgentPreview, resolveSelfSandbox, servePreviewMcp };
@@ -1,4 +1,4 @@
1
- import { l as TraceExportResult, n as HttpClient, r as SandboxInstance, u as TraceExportSink } from "./sandbox-Dw9YNtU4.js";
1
+ import { l as TraceExportResult, n as HttpClient, r as SandboxInstance, u as TraceExportSink } from "./sandbox-BQf4G_7z.js";
2
2
  import { $r as SandboxFleetToken, Ar as SandboxFleetAgent, B as CreateSandboxOptions, Bt as FleetDispatchStreamOptions, Ca as TokenRefreshHandler, En as ListSandboxOptions, F as CreateIntelligenceReportOptions, Ft as FleetAgentResult, G as DeleteMatchingSandboxesFilter, Gr as SandboxFleetManifest, Gt as FleetMachineId, Ht as FleetDriveTurnRequest, I as CreateRequestOptions, Ir as SandboxFleetDispatchResponse, Jn as PromptResult, Jr as SandboxFleetParent, Jt as FleetRunEvent, K as DeleteMatchingSandboxesOptions, Kn as PromptInputPart, Kt as FleetPromptDispatchOptions, L as CreateSandboxFleetOptions, Lr as SandboxFleetDriverCapability, Lt as FleetDispatchCancelResult, M as ConversationTurnOptions, Mr as SandboxFleetArtifact, N as ConversationTurnResult, Nr as SandboxFleetArtifactSpec, Nt as FleetAgentId, Or as SandboxEnvironment, Pr as SandboxFleetCostEstimate, Qr as SandboxFleetSpend, R as CreateSandboxFleetTokenOptions, Ri as SecretsManager, Rt as FleetDispatchResultBuffer, Si as SandboxShapesInfo, Tn as ListSandboxFleetOptions, Ur as SandboxFleetMachineRecord, Ut as FleetExecDispatchOptions, Vt as FleetDriveTurnOutcome, Wr as SandboxFleetMachineSpec, Wt as FleetExecDispatchResult, Xr as SandboxFleetPolicy, Yt as FleetRunOptions, _i as SandboxRunGeneration, _n as IntelligenceReport, ar as ReapExpiredSandboxFleetsResult, b as BatchRunRequest, br as SandboxConfig, ca as SshKeysManager, ci as SandboxFleetWorkspaceSnapshotResult, d as BackendConfig, ei as SandboxFleetTraceBundle, er as PublicTemplateInfo, fa as SubscriptionInfo, ii as SandboxFleetUsage, ir as ReapExpiredSandboxFleetsOptions, ka as UsageInfo, l as AttachSandboxFleetMachineOptions, li as SandboxIdentity, nr as PublishPublicTemplateOptions, oi as SandboxFleetWorkspaceReconcileResult, or as ReconcileSandboxFleetsOptions, q as DeleteMatchingSandboxesResult, qn as PromptOptions, qr as SandboxFleetOperationsSummary, qt as FleetPromptDispatchResult, ri as SandboxFleetTraceOptions, rr as PublishPublicTemplateVersionOptions, si as SandboxFleetWorkspaceRestoreResult, sr as ReconcileSandboxFleetsResult, to as BatchEvent, tr as PublicTemplateVersionInfo, ui as SandboxInfo, v as BatchResult, vn as IntelligenceReportBudget, vt as ExecOptions, xn as IntelligenceReportWindow, y as BatchRunOptions, yn as IntelligenceReportCompareTo, yt as ExecResult, z as CreateSandboxFleetWithCoordinatorOptions, zr as SandboxFleetInfo, zt as FleetDispatchResultBufferOptions } from "./types-C0XwJqxx.js";
3
3
  import { l as ScopedToken, s as MintInteractiveSessionTokenOptions } from "./terminal-stream-CV1pMSKC.js";
4
4
  import { I as LinesClient } from "./lines-DQmR5ypP.js";
@@ -2,7 +2,7 @@ import { r as backendTypeSchema } from "./backend-types-C7b_Gpa0.js";
2
2
  import { D as foldModelRoutingFields, E as assertCurrentBackendType, M as withProfileHarness, S as encodePromptForWire, T as applyRequestedModel, k as normalizeRuntimeBackendConfig, s as requestInteractiveSessionToken, w as parseSSEStream } from "./interactive-controller-Dxt5sW2N.js";
3
3
  import { _ as TimeoutError, b as parseResponseError, c as NetworkError, d as QuotaError, l as NotFoundError, m as ServerError, p as SandboxError, s as NON_RETRYABLE_CREATE_QUOTA_REASONS, t as AuthError, u as PartialFailureError, v as ValidationError, x as readResponseJson, y as parseErrorResponse } from "./errors-Cq4hMysQ.js";
4
4
  import { f as combineAbortSignals } from "./browser-interactive-control-controller-BJf0P_J4.js";
5
- import { A as exportTraceBundle, C as splitInlineProfileFileMounts, D as normalizeSandboxShape, E as normalizeConnection, O as rewrapResponse, T as validateDeferredProfileFileMounts, a as normalizeStartupDiagnostics, i as normalizeSandboxCreateReceipt, n as createSandboxInstanceFromResponse, r as normalizeCaptureProof, w as splitInlineProfileSkills } from "./sandbox-CfGVI_xk.js";
5
+ import { A as exportTraceBundle, C as splitInlineProfileFileMounts, D as normalizeSandboxShape, E as normalizeConnection, O as rewrapResponse, T as validateDeferredProfileFileMounts, a as normalizeStartupDiagnostics, i as normalizeSandboxCreateReceipt, n as createSandboxInstanceFromResponse, r as normalizeCaptureProof, w as splitInlineProfileSkills } from "./sandbox-DNwEDkL2.js";
6
6
  import { LinesClient } from "./lines.js";
7
7
  import { agentProfileSchema } from "@tangle-network/agent-interface";
8
8
  import { z } from "zod";
@@ -3323,11 +3323,11 @@ function withRequestContextHeaders(response, path, method) {
3323
3323
  return rewrapResponse(response, headers);
3324
3324
  }
3325
3325
  async function resolveLocalCliAuthFiles(backendType) {
3326
- const { discoverLocalCliAuthFiles } = await import("./local-cli-auth-D-_fMdNS.js");
3326
+ const { discoverLocalCliAuthFiles } = await import("./local-cli-auth-Bs0An6Cw.js");
3327
3327
  return discoverLocalCliAuthFiles(backendType);
3328
3328
  }
3329
3329
  async function describeLocalCliAuthExpectation(backendType) {
3330
- const { describeLocalCliAuthExpectation: describe } = await import("./local-cli-auth-D-_fMdNS.js");
3330
+ const { describeLocalCliAuthExpectation: describe } = await import("./local-cli-auth-Bs0An6Cw.js");
3331
3331
  return describe(backendType);
3332
3332
  }
3333
3333
  async function hydrateLocalCliBackendAuth(backend, baseUrl, trustLocalCliAuth) {
package/dist/core.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { a as WorkspaceImagePublishRequestOptions, i as WorkspaceImagePublishInput, o as WorkspaceImagePublishResult, r as SandboxInstance, s as WorkspaceImages } from "./sandbox-Dw9YNtU4.js";
1
+ import { a as WorkspaceImagePublishRequestOptions, i as WorkspaceImagePublishInput, o as WorkspaceImagePublishResult, r as SandboxInstance, s as WorkspaceImages } from "./sandbox-BQf4G_7z.js";
2
2
  import { An as NetworkConfig, B as CreateSandboxOptions, Ba as ManagedProcessResumeOptions, Ci as SandboxStatus, Fn as PreviewLinkInfo, Ha as ManagedProcessState, Ia as ManagedProcessClient, In as PreviewLinkManager, Kn as PromptInputPart, La as ManagedProcessJobs, Ln as PreviewLinkWaitOptions, M as ConversationTurnOptions, N as ConversationTurnResult, Qi as SessionMessageAdmission, Ra as ManagedProcessOptions, Ua as SandboxEnvRecovery, Va as ManagedProcessSpec, Wa as SandboxEnvRecoveryView, br as SandboxConfig, ui as SandboxInfo, vt as ExecOptions, yt as ExecResult, za as ManagedProcessRecord } from "./types-C0XwJqxx.js";
3
3
  import { A as LineSenderVerification, B as profileChannelReference, C as LineReplyCodeInput, G as LineApplicationResult, H as LINE_APPLICATION_REQUEST_MAX_BYTES, I as LinesClient, J as parseLineApplicationRequest, K as LineApplicationState, O as LineSendInput, S as LineReplyCode, U as LineApplication, V as LINE_APPLICATION_REPLY_MAX_CHARS, W as LineApplicationRequest, Y as parseLineApplicationResult, a as LineApplicationAttachOptions, b as LineProvider, c as LineAttachmentReauthorization, d as LineInstanceAttachOptions, f as LineInstanceCreate, h as LineMemberInstance, j as LineSenderVerificationStart, k as LineSendReceipt, l as LineExecutionKey, m as LineMember, n as LineAgentRolePolicy, q as LineApplicationView, s as LineAttachment, t as Line, x as LineReminderPreferences, y as LineNumberInventory, z as lineInstanceKey } from "./lines-DQmR5ypP.js";
4
- import { A as BackendRegistryEntry, C as InstancesClient, F as backendRegistryInteractionKindSchema, I as backendRegistryResponseSchema, L as isBackendRegistryInteractionKind, M as BackendRegistryResponse, N as backendRegistryCapabilitiesSchema, P as backendRegistryEntrySchema, R as parseBackendRegistryResponse, _ as EnsureInstanceOptions, b as InstanceRecord, i as Sandbox, j as BackendRegistryInteractionKind, k as BackendRegistryCapabilities, v as HostedInstance, x as InstanceRestartingError, y as InstanceProfile, z as parseBackendRegistryResponseBody } from "./client-CO5ShEdk.js";
4
+ import { A as BackendRegistryEntry, C as InstancesClient, F as backendRegistryInteractionKindSchema, I as backendRegistryResponseSchema, L as isBackendRegistryInteractionKind, M as BackendRegistryResponse, N as backendRegistryCapabilitiesSchema, P as backendRegistryEntrySchema, R as parseBackendRegistryResponse, _ as EnsureInstanceOptions, b as InstanceRecord, i as Sandbox, j as BackendRegistryInteractionKind, k as BackendRegistryCapabilities, v as HostedInstance, x as InstanceRestartingError, y as InstanceProfile, z as parseBackendRegistryResponseBody } from "./client-CPt8NJRl.js";
5
5
  import { a as FileWriteConflictError, b as ValidationError, c as NotFoundError, f as SandboxError, g as StateError, h as ServerError, l as PartialFailureError, m as SandboxFailureDetail, n as CapabilityError, p as SandboxErrorJson, s as NetworkError, t as AuthError, u as QuotaError, y as TimeoutError } from "./errors-CRssX9qs.js";
6
6
 
7
7
  //#region src/core.d.ts
package/dist/core.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { _ as TimeoutError, a as FileWriteConflictError, c as NetworkError, d as QuotaError, h as StateError, l as NotFoundError, m as ServerError, n as CapabilityError, p as SandboxError, t as AuthError, u as PartialFailureError, v as ValidationError } from "./errors-Cq4hMysQ.js";
2
- import { _ as parseBackendRegistryResponse, a as InstanceRestartingError, f as backendRegistryCapabilitiesSchema, g as isBackendRegistryInteractionKind, h as backendRegistryResponseSchema, i as HostedInstance, m as backendRegistryInteractionKindSchema, n as Sandbox, o as InstancesClient, p as backendRegistryEntrySchema, v as parseBackendRegistryResponseBody } from "./client-B8OutXq2.js";
3
- import { o as WorkspaceImages, t as SandboxInstance, x as ManagedProcessClient } from "./sandbox-CfGVI_xk.js";
2
+ import { _ as parseBackendRegistryResponse, a as InstanceRestartingError, f as backendRegistryCapabilitiesSchema, g as isBackendRegistryInteractionKind, h as backendRegistryResponseSchema, i as HostedInstance, m as backendRegistryInteractionKindSchema, n as Sandbox, o as InstancesClient, p as backendRegistryEntrySchema, v as parseBackendRegistryResponseBody } from "./client-_Xbp4cHc.js";
3
+ import { o as WorkspaceImages, t as SandboxInstance, x as ManagedProcessClient } from "./sandbox-DNwEDkL2.js";
4
4
  import { LinesClient, lineInstanceKey, profileChannelReference } from "./lines.js";
5
5
  import { i as parseLineApplicationResult, n as LINE_APPLICATION_REQUEST_MAX_BYTES, r as parseLineApplicationRequest, t as LINE_APPLICATION_REPLY_MAX_CHARS } from "./line-application-Cq6dJLBD.js";
6
6
  //#region src/core.ts
@@ -1,4 +1,4 @@
1
- import { n as HttpClient, r as SandboxInstance } from "./sandbox-Dw9YNtU4.js";
1
+ import { n as HttpClient, r as SandboxInstance } from "./sandbox-BQf4G_7z.js";
2
2
  import { B as CreateSandboxOptions } from "./types-C0XwJqxx.js";
3
3
 
4
4
  //#region src/tangle/abi.d.ts
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { A as InteractiveStopCommand, B as SandboxInteractionConflict, C as InteractiveSessionHandleOptions, D as InteractiveSessionRef, E as InteractiveSessionInfo, F as InteractiveTerminalFrameLog, G as CONTROL_PLANE_MCP_SERVER_NAME, H as SandboxInteractionResult, I as InteractiveTerminalMetadata, J as SandboxMcpEndpoint, K as SANDBOX_MCP_SERVER_NAME, L as createInteractiveTerminalCapture, M as RespondToPermissionOptions, N as agentInteractiveSessionPromptRequestDigest, O as InteractiveSessionStartOptions, P as InteractiveTerminalCapture, R as createInteractiveTerminalSession, S as InteractiveSessionHandle, T as InteractiveSessionIncarnationId, U as BuildControlPlaneMcpConfigOptions, V as SandboxInteractionResolution, W as BuildSandboxMcpConfigOptions, X as buildControlPlaneMcpConfig, Y as SandboxMcpServerEntry, Z as buildSandboxMcpConfig, _ as SandboxSession, a as WorkspaceImagePublishRequestOptions, b as InteractivePromptCommand, c as TraceExportFormat, d as buildTraceExportPayload, f as exportTraceBundle, g as RawEvidenceExport, h as SandboxTaskSession, i as WorkspaceImagePublishInput, j as InterruptResult, k as InteractiveSessionStartResult, l as TraceExportResult, m as toOtelJson, o as WorkspaceImagePublishResult, p as otelTraceIdForTangleTrace, q as SandboxMcpConfig, r as SandboxInstance, s as WorkspaceImages, t as ForkAcknowledgement, u as TraceExportSink, v as AgentInteractiveTerminalSession, w as InteractiveSessionHost, x as InteractiveSessionControlClaim, y as InteractiveControlClaimRequest, z as SandboxInteractionCommandResult } from "./sandbox-Dw9YNtU4.js";
1
+ import { A as InteractiveStopCommand, B as SandboxInteractionConflict, C as InteractiveSessionHandleOptions, D as InteractiveSessionRef, E as InteractiveSessionInfo, F as InteractiveTerminalFrameLog, G as CONTROL_PLANE_MCP_SERVER_NAME, H as SandboxInteractionResult, I as InteractiveTerminalMetadata, J as SandboxMcpEndpoint, K as SANDBOX_MCP_SERVER_NAME, L as createInteractiveTerminalCapture, M as RespondToPermissionOptions, N as agentInteractiveSessionPromptRequestDigest, O as InteractiveSessionStartOptions, P as InteractiveTerminalCapture, R as createInteractiveTerminalSession, S as InteractiveSessionHandle, T as InteractiveSessionIncarnationId, U as BuildControlPlaneMcpConfigOptions, V as SandboxInteractionResolution, W as BuildSandboxMcpConfigOptions, X as buildControlPlaneMcpConfig, Y as SandboxMcpServerEntry, Z as buildSandboxMcpConfig, _ as SandboxSession, a as WorkspaceImagePublishRequestOptions, b as InteractivePromptCommand, c as TraceExportFormat, d as buildTraceExportPayload, f as exportTraceBundle, g as RawEvidenceExport, h as SandboxTaskSession, i as WorkspaceImagePublishInput, j as InterruptResult, k as InteractiveSessionStartResult, l as TraceExportResult, m as toOtelJson, o as WorkspaceImagePublishResult, p as otelTraceIdForTangleTrace, q as SandboxMcpConfig, r as SandboxInstance, s as WorkspaceImages, t as ForkAcknowledgement, u as TraceExportSink, v as AgentInteractiveTerminalSession, w as InteractiveSessionHost, x as InteractiveSessionControlClaim, y as InteractiveControlClaimRequest, z as SandboxInteractionCommandResult } from "./sandbox-BQf4G_7z.js";
2
2
  import { $ as DownloadOptions, $a as PublicBatchRunRequest, $i as SessionMessageInputPart, $n as PublicProfileConflict, $r as SandboxFleetToken, $t as GPU_LEASE_PROVIDER_NAMES, A as CommitTaskSessionOptions, Aa as WaitForOptions, Ai as SandboxTraceBundle, An as NetworkConfig, Ar as SandboxFleetAgent, At as FileUsageOptions, B as CreateSandboxOptions, Ba as ManagedProcessResumeOptions, Bi as SendSessionMessageRequest, Bn as ProcessListOptions, Br as SandboxFleetIntelligenceEnvelope, Bt as FleetDispatchStreamOptions, C as BranchOptions, Ca as TokenRefreshHandler, Ci as SandboxStatus, Cn as ListMessagesOptions, Cr as SandboxCreateReceipt, Ct as FileReadError, Da as UploadOptions, Di as SandboxTerminalManager, Dn as MAX_EGRESS_DENIALS_LIMIT, Dr as SandboxEgressUsage, Dt as FileTreeFile, Ea as UpdateUserOptions, Ei as SandboxTerminalInfo, En as ListSandboxOptions, Er as SandboxDeleteOutcome, Et as FileSystem, F as CreateIntelligenceReportOptions, Fa as WriteManyOptions, Fi as SearchMatch, Fn as PreviewLinkInfo, Fr as SandboxFleetDispatchFailureClass, Ft as FleetAgentResult, G as DeleteMatchingSandboxesFilter, Ga as RawEvidenceArchiveManifest, Gi as SessionExecutionStatus, Gn as ProcessStatus, Gr as SandboxFleetManifest, Gt as FleetMachineId, H as CreateTaskSessionOptions, Ha as ManagedProcessState, Hi as SessionBackendCredentials, Hn as ProcessManager, Hr as SandboxFleetMachineMeteredUsage, Ht as FleetDriveTurnRequest, I as CreateRequestOptions, Ia as ManagedProcessClient, Ii as SearchOptions, In as PreviewLinkManager, Ir as SandboxFleetDispatchResponse, It as FleetAgentRunStatus, J as DeleteOptions, Ja as RawEvidenceNativeFile, Ji as SessionInfo, Jn as PromptResult, Jr as SandboxFleetParent, Jt as FleetRunEvent, K as DeleteMatchingSandboxesOptions, Ka as RawEvidenceDirectoryExport, Ki as SessionFailureReason, Kn as PromptInputPart, Kr as SandboxFleetManifestMachine, Kt as FleetPromptDispatchOptions, L as CreateSandboxFleetOptions, La as ManagedProcessJobs, Li as SecretInfo, Ln as PreviewLinkWaitOptions, Lr as SandboxFleetDriverCapability, Lt as FleetDispatchCancelResult, M as ConversationTurnOptions, Ma as WorkspaceOperationLookup, Mi as SandboxTraceExport, Mn as NonHostAgentDriverConfig, Mr as SandboxFleetArtifact, Mt as FileWriteResult, N as ConversationTurnResult, Na as WriteFileOptions, Ni as SandboxTraceOptions, Nn as PermissionLevel, Nr as SandboxFleetArtifactSpec, Nt as FleetAgentId, Oa as UploadProgress, Oi as SandboxTerminalRequestOptions, On as McpServerConfig, Or as SandboxEnvironment, Ot as FileTreeOptions, P as CreateGpuLeaseOptions, Pa as WriteManyFile, Pi as SandboxUser, Pn as PermissionsManager, Pr as SandboxFleetCostEstimate, Pt as FleetAgentPlacement, Q as DispatchedSession, Qi as SessionMessageAdmission, Qn as ProvisionStep, Qr as SandboxFleetSpend, Qt as ForkLookupOptions, Ra as ManagedProcessOptions, Ri as SecretsManager, Rn as Process, Rr as SandboxFleetDriverTimings, Rt as FleetDispatchResultBuffer, S as BatchTaskResult, Sa as TeePublicKeyResponse, Si as SandboxShapesInfo, Sr as SandboxCreateOutcome, St as FileReadBatchResult, T as ChunkedUploadResult, Ta as TurnDriveResult, Ti as SandboxTerminalCreateOptions, Tn as ListSandboxFleetOptions, Tr as SandboxDeleteOptions, Tt as FileRenameResult, U as DeleteMatchingSandboxOutcome, Ua as SandboxEnvRecovery, Ui as SessionEventStreamOptions, Un as ProcessSignal, Ur as SandboxFleetMachineRecord, Ut as FleetExecDispatchOptions, V as CreateSessionOptions, Va as ManagedProcessSpec, Vi as SentSessionMessage, Vn as ProcessLogEntry, Vr as SandboxFleetMachine, Vt as FleetDriveTurnOutcome, W as DeleteMatchingSandboxResult, Wa as SandboxEnvRecoveryView, Wi as SessionExecutionInfo, Wn as ProcessSpawnOptions, Wr as SandboxFleetMachineSpec, X as DirectoryPermission, Xa as RawEvidenceRecordsFile, Xi as SessionListOptions, Xn as ProvisionResult, Xr as SandboxFleetPolicy, Xt as ForkCounts, Y as DevServerInfo, Ya as RawEvidencePayloadFile, Yi as SessionInterruptOptions, Yn as ProvisionEvent, Yr as SandboxFleetPlacement, Yt as FleetRunOptions, Z as DispatchPromptOptions, Zi as SessionMessage, Zn as ProvisionStatus, Zr as SandboxFleetProfileRef, Zt as ForkIdempotency, _ as BatchBackend, _a as TaskSessionProfile, _i as SandboxRunGeneration, _n as IntelligenceReport, _r as RolloutTurnPart, _t as ExactProcessSpawnOptions, aa as SnapshotInfo, ai as SandboxFleetWorkspace, an as GitStatus, ao as ALL_BACKEND_TYPES, ar as ReapExpiredSandboxFleetsResult, at as DriverType, b as BatchRunRequest, ba as TeeAttestationResponse, bi as SandboxShape, bn as IntelligenceReportSubjectType, br as SandboxConfig, bt as FileInfo, c as AttachGpuLeaseOptions, ci as SandboxFleetWorkspaceSnapshotResult, cn as GpuLeaseCommandResult, cr as RenameOptions, d as BackendConfig, da as StorageConfig, di as SandboxIntelligenceEnvelope, dn as GpuLeaseManager, dr as Rollout, dt as EffectiveBackendSource, ea as SessionResultOptions, ei as SandboxFleetTraceBundle, en as GitAuth, eo as BatchBackendStats, er as PublicTemplateInfo, et as DownloadProgress, f as BackendInfo, fa as SubscriptionInfo, fi as SandboxPortBinding, fn as GpuLeaseProviderName, fr as RolloutChildResult, ft as EgressDenial, g as BackendStatus, ga as TaskSessionInfo, gi as SandboxResources, gn as InstalledTool, gr as RolloutStatus, gt as EventStreamOptions, h as BackendRuntimeConfigUpdate, ha as TaskSessionFileChange, hi as SandboxResourceUsage, hn as HostAgentRuntimeBackend, hr as RolloutStartResult, ht as EnsureDevServerOptions, ia as SnapshotIdempotency, ii as SandboxFleetUsage, in as GitDiff, io as BatchTaskUsage, ir as ReapExpiredSandboxFleetsOptions, it as DriverInfo, j as CompletedTurnResult, ja as WaitForRolloutOptions, ji as SandboxTraceEvent, jn as NetworkManager, jr as SandboxFleetAgentSpec, jt as FileUsageResult, ka as UsageInfo, ki as SandboxTerminals, kn as MkdirOptions, kr as SandboxEvent, kt as FileTreeResult, l as AttachSandboxFleetMachineOptions, la as StartupDiagnostics, li as SandboxIdentity, ln as GpuLeaseExecOptions, lt as EffectiveBackend, m as BackendMcpServerStatus, ma as TaskSessionCommitResult, mi as SandboxRemovalState, mn as HostAgentDriverConfig, mr as RolloutScorer, mt as EgressPolicy, n as AccessPolicyRule, na as SnapshotDeleteAcknowledgement, ni as SandboxFleetTraceExport, nn as GitCommit, no as BatchEventDataMap, nr as PublishPublicTemplateOptions, nt as DriveTurnOptions, oa as SnapshotOptions, oi as SandboxFleetWorkspaceReconcileResult, on as GpuLease, oo as BackendType, or as ReconcileSandboxFleetsOptions, ot as DurablePlan, p as BackendManager, pa as TaskSessionChanges, pi as SandboxPortPreviewLink, pn as GpuLeaseStatus, pr as RolloutOptions, pt as EgressManager, q as DeleteMatchingSandboxesResult, qa as RawEvidenceExportOptions, qi as SessionForkOptions, qn as PromptOptions, qr as SandboxFleetOperationsSummary, qt as FleetPromptDispatchResult, r as AddUserOptions, ra as SnapshotDeleteOutcome, ri as SandboxFleetTraceOptions, rn as GitConfig, ro as BatchSidecarGroup, rr as PublishPublicTemplateVersionOptions, rt as DriverConfig, sa as SnapshotResult, si as SandboxFleetWorkspaceRestoreResult, sn as GpuLeaseBilling, so as parseBackendType, sr as ReconcileSandboxFleetsResult, st as DurablePlanDecisionResult, t as AcceleratorKind, ta as SessionStatus, ti as SandboxFleetTraceEvent, tn as GitBranch, to as BatchEvent, tr as PublicTemplateVersionInfo, tt as DownloadResult, u as BackendCapabilities, ua as StartupOperation, ui as SandboxInfo, un as GpuLeaseExecResult, ut as EffectiveBackendProfile, v as BatchResult, va as TeeAttestationOptions, vi as SandboxRuntimeCapabilities, vn as IntelligenceReportBudget, vr as SSHCommandDescriptor, vt as ExecOptions, w as ChunkedUploadOptions, wa as TokenUsage, wi as SandboxTerminalAttachOptions, wn as ListOptions, wr as SandboxDeleteAcknowledgement, wt as FileReadResult, x as BatchTask, xa as TeePublicKey, xi as SandboxShapePreset, xn as IntelligenceReportWindow, xr as SandboxConnection, xt as FileReadBatchOptions, y as BatchRunOptions, ya as TeeAttestationReport, yi as SandboxRuntimeHealth, yn as IntelligenceReportCompareTo, yr as SSHCredentials, yt as ExecResult, z as CreateSandboxFleetWithCoordinatorOptions, za as ManagedProcessRecord, zi as SendSessionMessageOptions, zn as ProcessInfo, zr as SandboxFleetInfo, zt as FleetDispatchResultBufferOptions } from "./types-C0XwJqxx.js";
3
3
  import { c as MintScopedTokenOptions, d as TERMINAL_WS_ECHO_SUBPROTOCOL, f as TerminalExitInfo, g as TerminalStreamAuthFormat, h as TerminalReadyInfo, i as TerminalStreamOptions, l as ScopedToken, m as TerminalOutputMessage, n as TerminalStreamError, o as TerminalStreamToken, p as TerminalInteractiveSessionIdentity, r as TerminalStreamHandlers, s as MintInteractiveSessionTokenOptions, t as TerminalStream, u as ScopedTokenScope } from "./terminal-stream-CV1pMSKC.js";
4
4
  import { a as InteractiveSessionControlController, c as InteractiveSessionIdentity, d as interactiveSessionIdentityDigest, f as InteractiveAttachOptions, g as InteractiveSessionStatus, h as InteractiveRequestOptions, i as INTERACTIVE_CONTROL_CLEANUP_TIMEOUT_MS, l as InteractiveSessionNotRunningError, m as InteractiveControlClaimOptions, n as BrowserInteractiveSessionControlControllerOptions, o as InteractiveSessionControlControllerOptions, p as InteractiveControlClaimAcknowledgement, r as browserInteractiveControlHolderId, s as InteractiveSessionControlTransport, t as BrowserInteractiveSessionControlController, u as createInteractiveControlHolderId } from "./browser-interactive-control-controller-JUW3gOGH.js";
5
5
  import { a as InteractiveSessionControllerOptions, i as InteractiveSessionController, n as BrowserInteractiveSessionControllerOptions, o as InteractiveSessionControllerTransport, r as InteractiveAttachRequest, t as BrowserInteractiveSessionController } from "./interactive-controller-DNbLzamS.js";
6
6
  import { A as LineSenderVerification, B as profileChannelReference, C as LineReplyCodeInput, D as LineRole, E as LineRespondView, F as LineVoiceOptions, G as LineApplicationResult, H as LINE_APPLICATION_REQUEST_MAX_BYTES, I as LinesClient, J as parseLineApplicationRequest, K as LineApplicationState, M as LineThread, N as LineTransport, O as LineSendInput, P as LineVoice, R as SandboxLines, S as LineReplyCode, T as LineRespondAgent, U as LineApplication, V as LINE_APPLICATION_REPLY_MAX_CHARS, W as LineApplicationRequest, Y as parseLineApplicationResult, _ as LineMemberSpec, a as LineApplicationAttachOptions, b as LineProvider, c as LineAttachmentReauthorization, d as LineInstanceAttachOptions, f as LineInstanceCreate, g as LineMemberPatch, h as LineMemberInstance, i as LineAllowanceSubject, j as LineSenderVerificationStart, k as LineSendReceipt, l as LineExecutionKey, m as LineMember, n as LineAgentRolePolicy, o as LineAttachOptions, p as LineLimits, q as LineApplicationView, r as LineAllowance, s as LineAttachment, t as Line, u as LineFromConnectionInput, v as LineMessage, w as LineReplyGate, x as LineReminderPreferences, y as LineNumberInventory, z as lineInstanceKey } from "./lines-DQmR5ypP.js";
7
- import { A as BackendRegistryEntry, C as InstancesClient, D as ParsedSSEEvent, E as ParseSSEStreamOptions, F as backendRegistryInteractionKindSchema, I as backendRegistryResponseSchema, L as isBackendRegistryInteractionKind, M as BackendRegistryResponse, N as backendRegistryCapabilitiesSchema, O as parseSSEStream, P as backendRegistryEntrySchema, R as parseBackendRegistryResponse, S as InstanceStart, T as SandboxFleetClient, _ as EnsureInstanceOptions, a as Team, b as InstanceRecord, c as SessionBroadcastEvent, d as RunPlacement, f as RunPlacementRecord, g as RunsHttpClient, h as RunsClient, i as Sandbox, j as BackendRegistryInteractionKind, k as BackendRegistryCapabilities, l as SessionBroadcastResult, m as RunWaitOptions, n as IntelligenceClient, o as TeamInvitation, p as RunRecord, r as InviteTeamMemberOptions, s as TeamMember, t as CreateTeamOptions, u as RunOptions, v as HostedInstance, w as SandboxFleet, x as InstanceRestartingError, y as InstanceProfile, z as parseBackendRegistryResponseBody } from "./client-CO5ShEdk.js";
7
+ import { A as BackendRegistryEntry, C as InstancesClient, D as ParsedSSEEvent, E as ParseSSEStreamOptions, F as backendRegistryInteractionKindSchema, I as backendRegistryResponseSchema, L as isBackendRegistryInteractionKind, M as BackendRegistryResponse, N as backendRegistryCapabilitiesSchema, O as parseSSEStream, P as backendRegistryEntrySchema, R as parseBackendRegistryResponse, S as InstanceStart, T as SandboxFleetClient, _ as EnsureInstanceOptions, a as Team, b as InstanceRecord, c as SessionBroadcastEvent, d as RunPlacement, f as RunPlacementRecord, g as RunsHttpClient, h as RunsClient, i as Sandbox, j as BackendRegistryInteractionKind, k as BackendRegistryCapabilities, l as SessionBroadcastResult, m as RunWaitOptions, n as IntelligenceClient, o as TeamInvitation, p as RunRecord, r as InviteTeamMemberOptions, s as TeamMember, t as CreateTeamOptions, u as RunOptions, v as HostedInstance, w as SandboxFleet, x as InstanceRestartingError, y as InstanceProfile, z as parseBackendRegistryResponseBody } from "./client-CPt8NJRl.js";
8
8
  import { _ as StreamInterruptedError, a as FileWriteConflictError, b as ValidationError, c as NotFoundError, d as ResumeEnvRequiredError, f as SandboxError, g as StateError, h as ServerError, i as EgressProxyRecoveryError, l as PartialFailureError, m as SandboxFailureDetail, n as CapabilityError, o as KeyBudgetExhaustedError, p as SandboxErrorJson, r as EdgeNotReadyError, s as NetworkError, t as AuthError, u as QuotaError, v as StreamInterruptionReason, y as TimeoutError } from "./errors-CRssX9qs.js";
9
9
  import { d as AnyTokenPayload, h as IssueCollaborationTokenOptions, m as CollaborationTokenPayload, p as CollaborationAccess } from "./index-BgmgfYZZ.js";
10
10
  import { _ as CollaborationTransportConfig, a as CollaborationClient, c as CollaborationClientConfig, d as CollaborationDocumentRef, f as CollaborationFileBridgeOptions, g as CollaborationTokenRefreshResponse, h as CollaborationTokenRefreshRequest, i as parseCollaborationDocumentId, l as CollaborationDocumentAdapter, m as CollaborationPermissions, n as buildCollaborationDocumentId, o as CollaborationBootstrapRequest, p as CollaborationFileEvent, r as normalizeCollaborationPath, s as CollaborationBootstrapResponse, t as CollaborationFileBridge, u as CollaborationDocumentChange, v as SaveCollaborationSnapshotRequest, y as SaveCollaborationSnapshotResponse } from "./index-DHuHjNie.js";
11
11
  import { a as deriveAgentRunOutcome, i as deriveAgentResultOutcome, n as AgentRunOutcomeTracker, o as projectAgentTerminalRecord, r as createAgentRunOutcomeTracker, t as AgentRunOutcome } from "./agent-run-outcome-C0CsZPED.js";
12
- import { b as TangleSandboxClientConfig, h as TangleSandboxClient } from "./index-DdUzvzA_.js";
12
+ import { b as TangleSandboxClientConfig, h as TangleSandboxClient } from "./index-DoB4GMBh.js";
13
13
  import * as _$_tangle_network_agent_interface0 from "@tangle-network/agent-interface";
14
14
  import { AgentProfile, AgentProfile as AgentProfile$1, AgentProfileCapabilities, AgentProfileConfidential, AgentProfileConfigValue, AgentProfileConnection, AgentProfileFileMount, AgentProfileFileMount as AgentProfileFileMount$1, AgentProfileMcpServer, AgentProfileModelHints, AgentProfilePermissionValue, AgentProfilePrompt, AgentProfileResourceRef, AgentProfileResources, AgentProfileSecurityPolicy, AgentProfileValidationIssue, AgentProfileValidationResult, AgentRunCancellationAcknowledgement, AgentRunCancellationRequest, AgentSubagentProfile, Capability, SANDBOX_SIZE_PRESET_NAMES, SandboxSizePreset } from "@tangle-network/agent-interface";
15
15
  import { z } from "zod";
@@ -4140,6 +4140,13 @@ type ProfileFileMountBox = {
4140
4140
  */
4141
4141
  uploadData?: FileSystem["uploadData"];
4142
4142
  };
4143
+ /**
4144
+ * Optional box runtime HTTP transport — the same fetch `/agents/profiles`
4145
+ * rides. Backs the profile-bundle cache claim/publish protocol; a box
4146
+ * without it (foreign implementations, tests) always takes the legacy
4147
+ * staged path and never claims or publishes.
4148
+ */
4149
+ runtimeFetch?: (endpoint: string, init?: RequestInit) => Promise<Response>;
4143
4150
  };
4144
4151
  /**
4145
4152
  * Synchronous pre-flight validation of deferred inline mounts: the same
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { i as parseBackendType, r as backendTypeSchema, t as ALL_BACKEND_TYPES } from "./backend-types-C7b_Gpa0.js";
2
2
  import { A as requestedPublicProfileDigest, F as deriveAgentResultOutcome, I as deriveAgentRunOutcome, L as projectAgentTerminalRecord, P as createAgentRunOutcomeTracker, a as TERMINAL_WS_ECHO_SUBPROTOCOL, i as TerminalStreamError, k as normalizeRuntimeBackendConfig, n as InteractiveSessionController, r as TerminalStream, t as BrowserInteractiveSessionController, w as parseSSEStream } from "./interactive-controller-Dxt5sW2N.js";
3
3
  import { _ as TimeoutError, a as FileWriteConflictError, c as NetworkError, d as QuotaError, f as ResumeEnvRequiredError, g as StreamInterruptedError, h as StateError, i as EgressProxyRecoveryError, l as NotFoundError, m as ServerError, n as CapabilityError, o as KeyBudgetExhaustedError, p as SandboxError, r as EdgeNotReadyError, t as AuthError, u as PartialFailureError, v as ValidationError } from "./errors-Cq4hMysQ.js";
4
- import { _ as parseBackendRegistryResponse, a as InstanceRestartingError, c as SandboxFleetClient, d as validateBatchRunRequest, f as backendRegistryCapabilitiesSchema, g as isBackendRegistryInteractionKind, h as backendRegistryResponseSchema, i as HostedInstance, l as runtimeWorkspaceCwdSchema, m as backendRegistryInteractionKindSchema, n as Sandbox, o as InstancesClient, p as backendRegistryEntrySchema, r as RunsClient, s as SandboxFleet, t as IntelligenceClient, u as createBatchResultAccumulator, v as parseBackendRegistryResponseBody } from "./client-B8OutXq2.js";
4
+ import { _ as parseBackendRegistryResponse, a as InstanceRestartingError, c as SandboxFleetClient, d as validateBatchRunRequest, f as backendRegistryCapabilitiesSchema, g as isBackendRegistryInteractionKind, h as backendRegistryResponseSchema, i as HostedInstance, l as runtimeWorkspaceCwdSchema, m as backendRegistryInteractionKindSchema, n as Sandbox, o as InstancesClient, p as backendRegistryEntrySchema, r as RunsClient, s as SandboxFleet, t as IntelligenceClient, u as createBatchResultAccumulator, v as parseBackendRegistryResponseBody } from "./client-_Xbp4cHc.js";
5
5
  import { a as INTERACTIVE_CONTROL_CLEANUP_TIMEOUT_MS, l as createInteractiveControlHolderId, n as browserInteractiveControlHolderId, o as InteractiveSessionControlController, s as InteractiveSessionNotRunningError, t as BrowserInteractiveSessionControlController, u as interactiveSessionIdentityDigest } from "./browser-interactive-control-controller-BJf0P_J4.js";
6
- import { A as exportTraceBundle, C as splitInlineProfileFileMounts, M as toOtelJson, S as materializeProfileFileMounts, T as validateDeferredProfileFileMounts, _ as collectAgentFinalMessageText, b as isToolBearingEvent, c as MAX_EGRESS_DENIALS_LIMIT, d as InteractiveSessionHandle, f as agentInteractiveSessionPromptRequestDigest, g as applySandboxEventText, h as createInteractiveTerminalSession, j as otelTraceIdForTangleTrace, k as buildTraceExportPayload, l as SandboxTaskSession, m as createInteractiveTerminalCapture, o as WorkspaceImages, p as InteractiveTerminalFrameLog, s as GPU_LEASE_PROVIDER_NAMES, t as SandboxInstance, u as SandboxSession, v as collectAgentResponseText, w as splitInlineProfileSkills, x as ManagedProcessClient, y as getSandboxEventText } from "./sandbox-CfGVI_xk.js";
6
+ import { A as exportTraceBundle, C as splitInlineProfileFileMounts, M as toOtelJson, S as materializeProfileFileMounts, T as validateDeferredProfileFileMounts, _ as collectAgentFinalMessageText, b as isToolBearingEvent, c as MAX_EGRESS_DENIALS_LIMIT, d as InteractiveSessionHandle, f as agentInteractiveSessionPromptRequestDigest, g as applySandboxEventText, h as createInteractiveTerminalSession, j as otelTraceIdForTangleTrace, k as buildTraceExportPayload, l as SandboxTaskSession, m as createInteractiveTerminalCapture, o as WorkspaceImages, p as InteractiveTerminalFrameLog, s as GPU_LEASE_PROVIDER_NAMES, t as SandboxInstance, u as SandboxSession, v as collectAgentResponseText, w as splitInlineProfileSkills, x as ManagedProcessClient, y as getSandboxEventText } from "./sandbox-DNwEDkL2.js";
7
7
  import { LinesClient, SandboxLines, lineInstanceKey, profileChannelReference } from "./lines.js";
8
8
  import { a as CollaborationClient, i as parseCollaborationDocumentId, n as buildCollaborationDocumentId, r as normalizeCollaborationPath, t as CollaborationFileBridge } from "./collaboration-DaWEv29D.js";
9
9
  import { i as parseLineApplicationResult, n as LINE_APPLICATION_REQUEST_MAX_BYTES, r as parseLineApplicationRequest, t as LINE_APPLICATION_REPLY_MAX_CHARS } from "./line-application-Cq6dJLBD.js";
10
- import { s as TangleSandboxClient } from "./tangle-Dt4FMrZs.js";
10
+ import { s as TangleSandboxClient } from "./tangle-7nYoMui0.js";
11
11
  import { SANDBOX_SIZE_PRESET_NAMES, agentProfileConfidentialSchema, agentProfileSchema } from "@tangle-network/agent-interface";
12
12
  import { z } from "zod";
13
13
  //#region src/confidential.ts
@@ -1,6 +1,6 @@
1
- import { r as SandboxInstance } from "./sandbox-Dw9YNtU4.js";
1
+ import { r as SandboxInstance } from "./sandbox-BQf4G_7z.js";
2
2
  import { Fn as PreviewLinkInfo, ht as EnsureDevServerOptions } from "./types-C0XwJqxx.js";
3
- import { i as Sandbox } from "./client-CO5ShEdk.js";
3
+ import { i as Sandbox } from "./client-CPt8NJRl.js";
4
4
 
5
5
  //#region src/agent/preview-operations.d.ts
6
6
  type AgentPreviewOptions = Pick<EnsureDevServerOptions, "sessionId" | "cwd"> & {
@@ -1875,7 +1875,15 @@ declare class SandboxInstance {
1875
1875
  private ensureRunning;
1876
1876
  private ensureRunningForPrompt;
1877
1877
  private assertFilesystemIncarnationReady;
1878
- private runtimeFetch;
1878
+ /**
1879
+ * One authenticated runtime HTTP call for this sandbox, relative endpoint
1880
+ * (`/agents/...`), scoped to the current filesystem incarnation. This is
1881
+ * the transport `/agents/profiles` rides and the box surface mount
1882
+ * delivery uses for profile-bundle cache claim/publish.
1883
+ */
1884
+ runtimeFetch(path: string, options?: RequestInit, fetchOptions?: {
1885
+ timeoutMs?: number;
1886
+ }): Promise<Response>;
1879
1887
  /**
1880
1888
  * Delegates to the shared `parseSSEStream` in `lib/sse-parser.ts`
1881
1889
  * — one canonical SSE implementation for the whole SDK. The
@@ -9,6 +9,10 @@ import { AgentExactRunControlRefSchema, AgentInteractiveSessionAttachSchema, Age
9
9
  import { z } from "zod";
10
10
  import { AgentInteractiveSessionControlClaimSchema as AgentInteractiveSessionControlClaimSchema$1, AgentInteractiveSessionPromptAcknowledgementSchema as AgentInteractiveSessionPromptAcknowledgementSchema$1, AgentInteractiveSessionRefSchema as AgentInteractiveSessionRefSchema$1, AgentInteractiveSessionStatusSchema, AgentInteractiveSessionStopAcknowledgementSchema as AgentInteractiveSessionStopAcknowledgementSchema$1 } from "@tangle-network/agent-interface/environment-interactive-control";
11
11
  import { readTokenCostUsd, readTokenUsage } from "@tangle-network/agent-core";
12
+ import { createHash } from "node:crypto";
13
+ import { constants } from "node:fs";
14
+ import "node:path";
15
+ import "node:fs/promises";
12
16
  //#region src/trace-exporter.ts
13
17
  function buildTraceExportPayload(bundle, format = "tangle", serviceName = "tangle-sandbox") {
14
18
  if (format === "tangle") return bundle;
@@ -327,7 +331,7 @@ const UNDECIDED_WRITE_STATUSES = new Set([
327
331
  504
328
332
  ]);
329
333
  const PROFILE_FILE_MOUNT_PACE_MS = 0;
330
- const PROFILE_BIN_DIR_RE = /(^|\/)(s?bin)\//;
334
+ const PROFILE_BIN_DIR_RE$1 = /(^|\/)(s?bin)\//;
331
335
  const PROFILE_AGENT_HOME = ["/home", "agent"].join("/");
332
336
  /**
333
337
  * Wire budget for a single-shot `POST /files/write` of a mount.
@@ -476,8 +480,27 @@ function fileApiTarget(mount, absolutePrefixes) {
476
480
  if (mount.path.length === 0) return null;
477
481
  return mount.path;
478
482
  }
483
+ /**
484
+ * The delivery target exactly as the staged manifest's `path` computes it:
485
+ * the file-API target when the box exposes writeMany, else the mount path.
486
+ * The publish manifest's `target` must match this byte-for-byte — the host
487
+ * re-admits delivered bundles by reading the bytes at these paths.
488
+ */
489
+ function profileFileDeliveryTarget(box, mount) {
490
+ return stagedProfileFileTarget(box, mount, DEFAULT_PROFILE_FILE_API_ABSOLUTE_PREFIXES);
491
+ }
492
+ function stagedProfileFileTarget(box, mount, absolutePrefixes) {
493
+ return typeof box.fs?.writeMany === "function" ? fileApiTarget(mount, absolutePrefixes) ?? mount.path : mount.path;
494
+ }
495
+ /**
496
+ * The exact content bytes of an inline mount — the bytes the staged
497
+ * manifest's sha256 covers and the bundle manifest's `sizeBytes` sums.
498
+ */
499
+ function inlineProfileFileContent(mount) {
500
+ return inlineContent(mount);
501
+ }
479
502
  function isExecutableProfileFile(mount) {
480
- return mount.executable ?? PROFILE_BIN_DIR_RE.test(mount.path);
503
+ return mount.executable ?? PROFILE_BIN_DIR_RE$1.test(mount.path);
481
504
  }
482
505
  function profileFileMode(mount) {
483
506
  return isExecutableProfileFile(mount) ? 493 : void 0;
@@ -808,7 +831,8 @@ async function materializeAbsentProfileFiles(box, files, options) {
808
831
  const stage = `.sandbox-profile-${globalThis.crypto.randomUUID()}`;
809
832
  const absolutePrefixes = normalizeAbsolutePrefixes(options.fileApiAbsolutePrefixes ?? DEFAULT_PROFILE_FILE_API_ABSOLUTE_PREFIXES);
810
833
  const manifest = await Promise.all(files.map(async (mount) => ({
811
- path: typeof box.fs?.writeMany === "function" ? fileApiTarget(mount, absolutePrefixes) ?? mount.path : mount.path,
834
+ path: stagedProfileFileTarget(box, mount, absolutePrefixes),
835
+ mountPath: mount.path,
812
836
  sha256: await sha256Hex(inlineContent(mount)),
813
837
  mode: profileFileMode(mount) ?? 420
814
838
  })));
@@ -2050,27 +2074,270 @@ function waitForReconnect(ms, signal) {
2050
2074
  signal?.addEventListener("abort", onAbort, { once: true });
2051
2075
  });
2052
2076
  }
2077
+ const CODEX_SYSTEM_PROMPT_FILE = ".codex/system-prompt.md";
2078
+ const OPENCODE_APPEND_SYSTEM_PROMPT_FILE = ".opencode/agent-system-prompt.md";
2079
+ const OPENCODE_CONFIG_FILE = "opencode.json";
2080
+ /** Project context file each harness actually reads from cwd. NEVER a constant. */
2081
+ const CONTEXT_FILE = {
2082
+ "claude-code": "CLAUDE.md",
2083
+ nanoclaw: "CLAUDE.md",
2084
+ codex: "AGENTS.md",
2085
+ opencode: ".opencode/profile-instructions.md",
2086
+ "kimi-code": "AGENTS.md",
2087
+ pi: "AGENTS.md",
2088
+ prime: "AGENTS.md",
2089
+ gemini: "GEMINI.md",
2090
+ hermes: "HERMES.md",
2091
+ openclaw: "AGENTS.md"
2092
+ };
2093
+ /**
2094
+ * The paths a profile resource may never mount.
2095
+ *
2096
+ * Codex names no system-prompt file of its own — `model_instructions_file`
2097
+ * takes whatever path it is given — and opencode names none either, since it
2098
+ * reads exactly the files its config lists. All three names below were chosen
2099
+ * here, so a file already at one of them is this materializer's own output from
2100
+ * an earlier application into the same workspace, and a mount there could not
2101
+ * survive the next application.
2102
+ *
2103
+ * That is an inference from the path name, not verified provenance: nothing
2104
+ * checks the existing bytes are prior materializer output, so a workspace that
2105
+ * carried a foreign file at one of these invented names is overwritten on the
2106
+ * first application. Accepted cost of stateless multi-turn re-application,
2107
+ * bounded by the names being ones no harness or user convention uses.
2108
+ */
2109
+ const MATERIALIZER_RESERVED_PATHS = new Set([
2110
+ CODEX_SYSTEM_PROMPT_FILE,
2111
+ OPENCODE_APPEND_SYSTEM_PROMPT_FILE,
2112
+ CONTEXT_FILE.opencode
2113
+ ]);
2114
+ /** Every path any harness reads as its project context file. */
2115
+ const CONTEXT_FILE_PATHS = new Set(Object.values(CONTEXT_FILE));
2116
+ /**
2117
+ * The context files this package owns by MARKER rather than by name:
2118
+ * `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `HERMES.md`.
2119
+ *
2120
+ * Each is a documented name a repository can already carry, so the name proves
2121
+ * nothing. A generated one carries the line {@link markMaterializerContextFile}
2122
+ * writes, and only that line lets the next materialization replace it.
2123
+ *
2124
+ * opencode's context file is absent because it is a RESERVED name this package
2125
+ * invented, already owned by the name alone.
2126
+ */
2127
+ const MATERIALIZER_CONTEXT_PATHS = new Set([...CONTEXT_FILE_PATHS].filter((path) => !MATERIALIZER_RESERVED_PATHS.has(path)));
2128
+ new Set([
2129
+ ...MATERIALIZER_RESERVED_PATHS,
2130
+ ...MATERIALIZER_CONTEXT_PATHS,
2131
+ OPENCODE_CONFIG_FILE
2132
+ ]);
2133
+ /** The one provenance token every generated-file marker carries. */
2134
+ const MATERIALIZER_MARKER = "tangle-agent-profile-materialize: generated";
2135
+ `${MATERIALIZER_MARKER}`;
2136
+ const MATERIALIZER_CONTEXT_MARKER_NOTE = "do not edit; the next profile materialization replaces this file";
2137
+ `${MATERIALIZER_MARKER}`;
2138
+ `${MATERIALIZER_CONTEXT_MARKER_NOTE}`;
2139
+ //#endregion
2140
+ //#region ../../../packages/agent-profile-materialize/dist/workspace-files.js
2141
+ const compareStrings = (a, b) => a < b ? -1 : a > b ? 1 : 0;
2142
+ constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | (typeof constants.O_NOFOLLOW === "number" ? constants.O_NOFOLLOW : 0);
2143
+ //#endregion
2144
+ //#region ../../../packages/agent-profile-materialize/dist/plan-types.js
2145
+ /**
2146
+ * The subset of {@link BINDABLE_LAUNCH_CONTROLS} the plan HANDS OVER rather than
2147
+ * executes: controls a caller reaches only by composing the harness's own
2148
+ * configuration, so no file, flag or env var the plan writes can touch them.
2149
+ *
2150
+ * - `opencode.agent-prompt` — opencode's `agent.<name>.prompt` config field,
2151
+ * the one control that replaces its built-in provider prompt. It binds to a
2152
+ * SINGLE agent, and the agent is chosen at launch. A caller that builds
2153
+ * opencode's config itself and picks the agent there reads neither
2154
+ * `plan.files` nor `plan.flags`, so for that one the plan names the control
2155
+ * and hands over the text in {@link WorkspacePlan.systemPromptBinding}.
2156
+ *
2157
+ * Every other bindable control names a capability the plan still lowers itself
2158
+ * once the caller has declared the plan's launch inputs really reach the spawn.
2159
+ */
2160
+ const EXECUTOR_SYSTEM_PROMPT_BINDINGS = ["opencode.agent-prompt"];
2161
+ new Set(EXECUTOR_SYSTEM_PROMPT_BINDINGS);
2162
+ /**
2163
+ * Launcher controls an executor can declare it OWNS via `materializeProfile`'s
2164
+ * `binds` option.
2165
+ *
2166
+ * Some harness controls live outside any workspace: opencode's exact
2167
+ * system-prompt replacement (`agent.<name>.prompt`) binds to the ONE agent
2168
+ * whoever starts the process selects, which a plan-forwarding executor cannot
2169
+ * guarantee — so the plan refuses the intent (harnessSystemPromptIntents in
2170
+ * @tangle-network/agent-interface answers `replace: false` for opencode).
2171
+ *
2172
+ * The two declarations describe the two executor shapes that CAN reach it, and
2173
+ * each gets the lowering it can actually apply:
2174
+ *
2175
+ * - `systemPrompt` — the executor applies the plan's launch flags to the
2176
+ * spawn it owns, so the plan writes the generated `mode: primary` agent and
2177
+ * selects it with `--agent`.
2178
+ * - `opencode.agent-prompt` — the executor composes opencode's own config and
2179
+ * picks the agent there, reading neither plan files nor plan flags, so the
2180
+ * plan hands the text over in {@link WorkspacePlan.systemPromptBinding}
2181
+ * instead of writing a workspace agent that would never be selected.
2182
+ *
2183
+ * They are mutually exclusive claims about the same caller: declaring both is a
2184
+ * caller bug, not a broader capability.
2185
+ */
2186
+ const BINDABLE_LAUNCH_CONTROLS = ["systemPrompt", ...EXECUTOR_SYSTEM_PROMPT_BINDINGS];
2187
+ new Set(BINDABLE_LAUNCH_CONTROLS);
2188
+ new TextDecoder("utf-8", {
2189
+ fatal: true,
2190
+ ignoreBOM: true
2191
+ });
2192
+ //#endregion
2193
+ //#region ../../../packages/agent-profile-materialize/dist/resource-resolution.js
2194
+ function describeUnresolvedRef(r) {
2195
+ const name = typeof r.name === "string" ? r.name : void 0;
2196
+ const path = typeof r.path === "string" ? r.path : void 0;
2197
+ if (name && path) return `"${name}" (${path})`;
2198
+ if (name) return `"${name}"`;
2199
+ if (path) return `"${path}"`;
2200
+ return "resource";
2201
+ }
2202
+ /** Resolve inline bytes already present on the profile. Remote resources must
2203
+ * be resolved by {@link resolveAgentProfileResources} before materialization.
2204
+ *
2205
+ * FAIL-CLOSED: a ref that declares `kind: "inline"` is asserting its bytes are
2206
+ * already resolved, so missing/non-string `content` is a caller bug, not an
2207
+ * empty file — silently coercing it (`String(content ?? "")`) would produce a
2208
+ * file that "looks provisioned, loads nothing", exactly the trap this module's
2209
+ * docstring warns against. */
2210
+ function resolveInlineRef(ref) {
2211
+ const r = ref;
2212
+ if (typeof r.content === "string") return {
2213
+ name: String(r.name ?? r.path ?? "resource"),
2214
+ content: r.content
2215
+ };
2216
+ if (r.kind === "inline") throw new Error(`Profile resource ${describeUnresolvedRef(r)} declares kind "inline" but has no string content`);
2217
+ return null;
2218
+ }
2219
+ Object.freeze({ async get() {} });
2220
+ //#endregion
2221
+ //#region ../../../packages/agent-profile-materialize/dist/profile-bundle-key.js
2222
+ const PROFILE_BUNDLE_SCHEMA = "agent-profile-bundle/v1";
2223
+ const PROFILE_BIN_DIR_RE = /(^|\/)(s?bin)\//;
2224
+ /**
2225
+ * Derive the canonical bundle file entry for one inline mount. The sha256 is
2226
+ * computed over the exact inline content bytes and the mode mirrors the SDK's
2227
+ * `profileFileMode`/`isExecutableProfileFile`: `mount.executable` wins when
2228
+ * present, otherwise a path under a `bin/` or `sbin/` directory is executable.
2229
+ * A mount whose resource is not inline is a caller bug and throws, matching
2230
+ * the fail-closed discipline of {@link resolveInlineRef}.
2231
+ */
2232
+ function profileBundleFileEntry(mount) {
2233
+ const resolved = resolveInlineRef(mount.resource);
2234
+ if (resolved === null) throw new Error(`profileBundleFileEntry: ${mount.path} requires an inline resource`);
2235
+ const executable = mount.executable ?? PROFILE_BIN_DIR_RE.test(mount.path);
2236
+ return {
2237
+ mountPath: mount.path,
2238
+ sha256: createHash("sha256").update(resolved.content, "utf8").digest("hex"),
2239
+ mode: executable ? 493 : 420
2240
+ };
2241
+ }
2242
+ /**
2243
+ * The canonical file table: one entry per mount, sorted by (mountPath, sha256)
2244
+ * so any array order of the same mounts produces the same table.
2245
+ */
2246
+ function profileBundleFileTable(mounts) {
2247
+ return mounts.map(profileBundleFileEntry).sort((left, right) => left.mountPath !== right.mountPath ? compareStrings(left.mountPath, right.mountPath) : compareStrings(left.sha256, right.sha256));
2248
+ }
2249
+ /**
2250
+ * The content-addressed bundle key. The digest covers EXACTLY the schema
2251
+ * version and, per file, the logical mount path, the sha256 of the content
2252
+ * bytes, and the full file mode — the same image-content-hash discipline as
2253
+ * scripts/ci/image-content-hash.mjs: hash exactly the inputs that determine
2254
+ * the cached bytes (and their placement semantics), nothing more. Any profile
2255
+ * change — content, path, or mode — produces a new key; anything else
2256
+ * (mount order, transport-only target paths, timestamps) does not.
2257
+ */
2258
+ function profileFileBundleKey(mounts) {
2259
+ return canonicalCandidateDigest({
2260
+ schema: PROFILE_BUNDLE_SCHEMA,
2261
+ files: profileBundleFileTable(mounts)
2262
+ });
2263
+ }
2053
2264
  //#endregion
2054
2265
  //#region src/profile-file-delivery.ts
2266
+ const PROFILE_BUNDLE_CLAIM_ENDPOINT = "/agents/profile-bundle/claim";
2267
+ const PROFILE_BUNDLE_PUBLISH_ENDPOINT = "/agents/profile-bundle/publish";
2268
+ /**
2269
+ * Wall-clock ceiling for one claim/publish round trip. The cache is an
2270
+ * optimization: a stalled box must fall back to (or skip) delivery, never
2271
+ * hold create() hostage.
2272
+ */
2273
+ const PROFILE_BUNDLE_HTTP_TIMEOUT_MS = 1e4;
2274
+ /**
2275
+ * Answers that mean the box predates the cache API: no route, a route that
2276
+ * rejects the method, or a recognized-but-unimplemented handler. Remembered
2277
+ * per box handle so an old box is never probed twice.
2278
+ */
2279
+ const PROFILE_BUNDLE_API_GONE_STATUSES = new Set([
2280
+ 404,
2281
+ 405,
2282
+ 501
2283
+ ]);
2284
+ function profileBundleDebug(message, data = {}) {
2285
+ if (globalThis.process?.env?.TANGLE_SANDBOX_SDK_PROFILE_BUNDLE_DEBUG !== "1") return;
2286
+ console.debug(`[sandbox-sdk] profile bundle: ${message}`, data);
2287
+ }
2288
+ async function withProfileBundleTimeout(work, what) {
2289
+ let timer;
2290
+ try {
2291
+ return await Promise.race([work, new Promise((_, reject) => {
2292
+ const timeoutError = /* @__PURE__ */ new Error(`${what} timed out after ${PROFILE_BUNDLE_HTTP_TIMEOUT_MS}ms`);
2293
+ timer = setTimeout(() => reject(timeoutError), PROFILE_BUNDLE_HTTP_TIMEOUT_MS);
2294
+ timer.unref?.();
2295
+ })]);
2296
+ } finally {
2297
+ if (timer !== void 0) clearTimeout(timer);
2298
+ }
2299
+ }
2300
+ function buildPublishManifest(box, deferredFiles, bundle) {
2301
+ const byMountPath = new Map(deferredFiles.map((mount) => [mount.path, mount]));
2302
+ const encoder = new TextEncoder();
2303
+ let sizeBytes = 0;
2304
+ const files = profileBundleFileTable(deferredFiles).map((entry) => {
2305
+ const mount = byMountPath.get(entry.mountPath);
2306
+ if (!mount) throw new Error(`profile bundle manifest: no mount for ${entry.mountPath}`);
2307
+ sizeBytes += encoder.encode(inlineProfileFileContent(mount)).byteLength;
2308
+ return {
2309
+ ...entry,
2310
+ target: profileFileDeliveryTarget(box, mount)
2311
+ };
2312
+ });
2313
+ return {
2314
+ schema: PROFILE_BUNDLE_SCHEMA,
2315
+ bundle,
2316
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2317
+ sizeBytes,
2318
+ files
2319
+ };
2320
+ }
2055
2321
  /** Successful immutable mount delivery is scoped to one filesystem incarnation. */
2056
2322
  var ProfileFileDelivery = class {
2057
2323
  delivered;
2058
2324
  pending = Promise.resolve();
2325
+ unsupportedBoxes = /* @__PURE__ */ new WeakSet();
2059
2326
  prepare(box, profile, signal, existingFiles = "allow-identical") {
2060
2327
  const { leanProfile, deferredFiles } = splitInlineProfileFileMounts(structuredClone(profile));
2061
2328
  validateDeferredProfileFileMounts(deferredFiles);
2062
2329
  if (deferredFiles.length === 0) return Promise.resolve(leanProfile);
2330
+ const bundle = profileFileBundleKey(deferredFiles);
2063
2331
  const prepared = this.pending.then(async () => {
2064
2332
  signal?.throwIfAborted();
2065
2333
  const incarnation = box.filesystemIncarnationId;
2066
- const fingerprint = canonicalCandidateDigest(deferredFiles);
2067
- if (incarnation === void 0 || this.delivered?.incarnation !== incarnation || this.delivered.fingerprint !== fingerprint) {
2334
+ if (incarnation === void 0 || this.delivered?.incarnation !== incarnation || this.delivered.fingerprint !== bundle) {
2068
2335
  this.delivered = void 0;
2069
- await materializeProfileFileMounts(box, deferredFiles, { existingFiles });
2336
+ await this.deliverProfileFiles(box, deferredFiles, bundle, existingFiles);
2070
2337
  if (box.filesystemIncarnationId !== incarnation) throw new StateError("Filesystem incarnation changed during profile file delivery", box.filesystemIncarnationId ?? "unknown", incarnation ?? "unknown");
2071
2338
  if (incarnation !== void 0) this.delivered = {
2072
2339
  incarnation,
2073
- fingerprint
2340
+ fingerprint: bundle
2074
2341
  };
2075
2342
  }
2076
2343
  signal?.throwIfAborted();
@@ -2079,6 +2346,73 @@ var ProfileFileDelivery = class {
2079
2346
  this.pending = prepared.then(() => {}, () => {});
2080
2347
  return prepared;
2081
2348
  }
2349
+ async deliverProfileFiles(box, deferredFiles, bundle, existingFiles) {
2350
+ const claim = await this.claimProfileBundle(box, deferredFiles, bundle);
2351
+ if (claim.kind === "legacy") {
2352
+ await materializeProfileFileMounts(box, deferredFiles, { existingFiles });
2353
+ return;
2354
+ }
2355
+ const remaining = deferredFiles.filter((mount) => claim.missing.has(mount.path));
2356
+ if (remaining.length === 0) return;
2357
+ await materializeProfileFileMounts(box, remaining, { existingFiles });
2358
+ await this.publishProfileBundle(box, deferredFiles, bundle);
2359
+ }
2360
+ async claimProfileBundle(box, deferredFiles, bundle) {
2361
+ if (typeof box.runtimeFetch !== "function" || this.unsupportedBoxes.has(box)) return { kind: "legacy" };
2362
+ const table = profileBundleFileTable(deferredFiles);
2363
+ try {
2364
+ const response = await withProfileBundleTimeout(box.runtimeFetch(PROFILE_BUNDLE_CLAIM_ENDPOINT, {
2365
+ method: "POST",
2366
+ headers: { "content-type": "application/json" },
2367
+ body: JSON.stringify({
2368
+ bundle,
2369
+ files: table.map(({ mountPath, sha256 }) => ({
2370
+ mountPath,
2371
+ sha256
2372
+ }))
2373
+ })
2374
+ }), "profile bundle claim");
2375
+ if (PROFILE_BUNDLE_API_GONE_STATUSES.has(response.status)) {
2376
+ this.unsupportedBoxes.add(box);
2377
+ profileBundleDebug("box predates the bundle cache API", { status: response.status });
2378
+ return { kind: "legacy" };
2379
+ }
2380
+ if (!response.ok) {
2381
+ profileBundleDebug("claim refused; legacy delivery this turn", { status: response.status });
2382
+ return { kind: "legacy" };
2383
+ }
2384
+ const body = await response.json();
2385
+ if (body.status === "hit") return {
2386
+ kind: "claimed",
2387
+ missing: /* @__PURE__ */ new Set()
2388
+ };
2389
+ const claimed = new Set(table.map(({ mountPath }) => mountPath));
2390
+ if (body.status !== "miss" || !Array.isArray(body.missing) || !body.missing.every((mountPath) => typeof mountPath === "string" && claimed.has(mountPath))) throw new Error("Malformed profile bundle claim response");
2391
+ return {
2392
+ kind: "claimed",
2393
+ missing: new Set(body.missing)
2394
+ };
2395
+ } catch (error) {
2396
+ profileBundleDebug("claim failed; legacy delivery this turn", { error: error instanceof Error ? error.message : String(error) });
2397
+ return { kind: "legacy" };
2398
+ }
2399
+ }
2400
+ async publishProfileBundle(box, deferredFiles, bundle) {
2401
+ if (typeof box.runtimeFetch !== "function" || this.unsupportedBoxes.has(box)) return;
2402
+ try {
2403
+ const response = await withProfileBundleTimeout(box.runtimeFetch(PROFILE_BUNDLE_PUBLISH_ENDPOINT, {
2404
+ method: "POST",
2405
+ headers: { "content-type": "application/json" },
2406
+ body: JSON.stringify({
2407
+ bundle,
2408
+ manifest: buildPublishManifest(box, deferredFiles, bundle)
2409
+ })
2410
+ }), "profile bundle publish");
2411
+ if (!response.ok) profileBundleDebug("publish refused", { status: response.status });
2412
+ } catch (error) {
2413
+ profileBundleDebug("publish failed", { error: error instanceof Error ? error.message : String(error) });
2414
+ }
2415
+ }
2082
2416
  };
2083
2417
  //#endregion
2084
2418
  //#region ../../../packages/runtime-contracts/dist/interactive-session-http.js
@@ -7711,6 +8045,12 @@ var SandboxInstance = class SandboxInstance {
7711
8045
  assertFilesystemIncarnationReady() {
7712
8046
  if (this.filesystemIncarnationReadiness !== "ready") throw new StateError("Sandbox filesystem incarnation is not ready", this.status, "running with a ready filesystem incarnation");
7713
8047
  }
8048
+ /**
8049
+ * One authenticated runtime HTTP call for this sandbox, relative endpoint
8050
+ * (`/agents/...`), scoped to the current filesystem incarnation. This is
8051
+ * the transport `/agents/profiles` rides and the box surface mount
8052
+ * delivery uses for profile-bundle cache claim/publish.
8053
+ */
7714
8054
  async runtimeFetch(path, options, fetchOptions) {
7715
8055
  this.assertFilesystemIncarnationReady();
7716
8056
  const url = `/v1/sandboxes/${encodeURIComponent(this.id)}/runtime${path}`;
@@ -1,2 +1,2 @@
1
- import { C as JsonResponseParamTypes, E as SandboxIdParamTypes, S as ITangleJobsAbi, T as SandboxCreateResponseParamTypes, _ as JOB_SANDBOX_DELETE, a as fetchQuote, b as TangleSandboxClientConfig, c as parseQuoteResponse, d as OperatorSession, f as OperatorSessionError, g as JOB_SANDBOX_CREATE, h as TangleSandboxClient, i as SignedQuote, l as validateQuote, m as SignMessage, n as QuoteDomain, o as inputsHashOf, p as OperatorSessionToken, r as QuoteError, s as jobQuoteDigest, t as JobQuoteDetails, u as OperatorChallenge, v as TANGLE_CHAIN_ID, w as SandboxCreateParamTypes, x as AgentSandboxBlueprintAbi, y as TANGLE_JOBS_CONTRACT } from "../index-DdUzvzA_.js";
1
+ import { C as JsonResponseParamTypes, E as SandboxIdParamTypes, S as ITangleJobsAbi, T as SandboxCreateResponseParamTypes, _ as JOB_SANDBOX_DELETE, a as fetchQuote, b as TangleSandboxClientConfig, c as parseQuoteResponse, d as OperatorSession, f as OperatorSessionError, g as JOB_SANDBOX_CREATE, h as TangleSandboxClient, i as SignedQuote, l as validateQuote, m as SignMessage, n as QuoteDomain, o as inputsHashOf, p as OperatorSessionToken, r as QuoteError, s as jobQuoteDigest, t as JobQuoteDetails, u as OperatorChallenge, v as TANGLE_CHAIN_ID, w as SandboxCreateParamTypes, x as AgentSandboxBlueprintAbi, y as TANGLE_JOBS_CONTRACT } from "../index-DoB4GMBh.js";
2
2
  export { AgentSandboxBlueprintAbi, ITangleJobsAbi, JOB_SANDBOX_CREATE, JOB_SANDBOX_DELETE, JobQuoteDetails, JsonResponseParamTypes, OperatorChallenge, OperatorSession, OperatorSessionError, OperatorSessionToken, QuoteDomain, QuoteError, SandboxCreateParamTypes, SandboxCreateResponseParamTypes, SandboxIdParamTypes, SignMessage, SignedQuote, TANGLE_CHAIN_ID, TANGLE_JOBS_CONTRACT, TangleSandboxClient, TangleSandboxClientConfig, fetchQuote, inputsHashOf, jobQuoteDigest, parseQuoteResponse, validateQuote };
@@ -1,2 +1,2 @@
1
- import { _ as SandboxCreateParamTypes, a as parseQuoteResponse, c as OperatorSession, d as JOB_SANDBOX_DELETE, f as TANGLE_CHAIN_ID, g as JsonResponseParamTypes, h as ITangleJobsAbi, i as jobQuoteDigest, l as OperatorSessionError, m as AgentSandboxBlueprintAbi, n as fetchQuote, o as validateQuote, p as TANGLE_JOBS_CONTRACT, r as inputsHashOf, s as TangleSandboxClient, t as QuoteError, u as JOB_SANDBOX_CREATE, v as SandboxCreateResponseParamTypes, y as SandboxIdParamTypes } from "../tangle-Dt4FMrZs.js";
1
+ import { _ as SandboxCreateParamTypes, a as parseQuoteResponse, c as OperatorSession, d as JOB_SANDBOX_DELETE, f as TANGLE_CHAIN_ID, g as JsonResponseParamTypes, h as ITangleJobsAbi, i as jobQuoteDigest, l as OperatorSessionError, m as AgentSandboxBlueprintAbi, n as fetchQuote, o as validateQuote, p as TANGLE_JOBS_CONTRACT, r as inputsHashOf, s as TangleSandboxClient, t as QuoteError, u as JOB_SANDBOX_CREATE, v as SandboxCreateResponseParamTypes, y as SandboxIdParamTypes } from "../tangle-7nYoMui0.js";
2
2
  export { AgentSandboxBlueprintAbi, ITangleJobsAbi, JOB_SANDBOX_CREATE, JOB_SANDBOX_DELETE, JsonResponseParamTypes, OperatorSession, OperatorSessionError, QuoteError, SandboxCreateParamTypes, SandboxCreateResponseParamTypes, SandboxIdParamTypes, TANGLE_CHAIN_ID, TANGLE_JOBS_CONTRACT, TangleSandboxClient, fetchQuote, inputsHashOf, jobQuoteDigest, parseQuoteResponse, validateQuote };
@@ -1,5 +1,5 @@
1
1
  import { x as readResponseJson } from "./errors-Cq4hMysQ.js";
2
- import { n as createSandboxInstanceFromResponse } from "./sandbox-CfGVI_xk.js";
2
+ import { n as createSandboxInstanceFromResponse } from "./sandbox-DNwEDkL2.js";
3
3
  import { _ as rotlBH, a as anumber, b as rotlSL, d as createXOFer, g as u32, h as toBytes$1, l as createHasher, m as swap32IfBE, n as abytes, o as aoutput, r as aexists, s as clean, t as Hash, v as rotlBL, x as split, y as rotlSH } from "./utils-B7_9Hl_z.js";
4
4
  //#region src/tangle/abi.ts
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox",
3
- "version": "0.60.36-develop.20261011055857.b608789",
3
+ "version": "0.60.36-develop.20261011062548.c10773e",
4
4
  "description": "Client SDK for the Tangle Sandbox platform - build AI agent applications with dev containers",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -150,12 +150,12 @@
150
150
  "ws": "^8.20.0",
151
151
  "yjs": "13.6.30",
152
152
  "@products/sandbox-test-utils": "0.0.0",
153
- "@repo/shared": "0.0.0",
154
153
  "@tangle-network/agent-profile-materialize": "0.22.4",
155
154
  "@tangle-network/cli-agent-registry": "0.6.2",
156
- "@tangle-network/runtime-contracts": "0.16.0",
157
155
  "@tangle-network/sdk": "4.0.3",
158
- "@tangle-network/sse-core": "0.0.0"
156
+ "@tangle-network/sse-core": "0.0.0",
157
+ "@tangle-network/runtime-contracts": "0.16.0",
158
+ "@repo/shared": "0.0.0"
159
159
  },
160
160
  "scripts": {
161
161
  "build": "node scripts/build-dist.mjs",
@@ -1,7 +1,7 @@
1
1
  import { t as AUTH_BUNDLE_PATHS } from "./cli-auth-bundle-Br8s2y4r.js";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
- import { homedir } from "node:os";
4
3
  import { join } from "node:path";
4
+ import { homedir } from "node:os";
5
5
  //#region ../../../packages/cli-agent-registry/dist/local-cli-auth.mjs
6
6
  const DEFAULT_MODE = 384;
7
7
  function readAuthFile(sourcePath, targetPath) {