@tangle-network/sandbox 0.60.36-develop.20261011062548.c10773e → 0.60.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +2 -2
- package/dist/agent/preview.d.ts +1 -1
- package/dist/{client-_Xbp4cHc.js → client-B8OutXq2.js} +3 -3
- package/dist/{client-CPt8NJRl.d.ts → client-CO5ShEdk.d.ts} +1 -1
- package/dist/core.d.ts +2 -2
- package/dist/core.js +2 -2
- package/dist/{index-DoB4GMBh.d.ts → index-DdUzvzA_.d.ts} +1 -1
- package/dist/index.d.ts +3 -10
- package/dist/index.js +3 -3
- package/dist/{preview-Ce8eC44V.d.ts → preview-DNAuiZly.d.ts} +2 -2
- package/dist/{sandbox-DNwEDkL2.js → sandbox-CfGVI_xk.js} +7 -347
- package/dist/{sandbox-BQf4G_7z.d.ts → sandbox-Dw9YNtU4.d.ts} +1 -9
- package/dist/tangle/index.d.ts +1 -1
- package/dist/tangle/index.js +1 -1
- package/dist/{tangle-7nYoMui0.js → tangle-Dt4FMrZs.js} +1 -1
- package/package.json +4 -4
- package/dist/{local-cli-auth-Bs0An6Cw.js → local-cli-auth-D-_fMdNS.js} +1 -1
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { _ as SandboxSession, h as SandboxTaskSession, r as SandboxInstance } from "../sandbox-
|
|
1
|
+
import { _ as SandboxSession, h as SandboxTaskSession, r as SandboxInstance } from "../sandbox-Dw9YNtU4.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-
|
|
4
|
-
import { u as PreviewAuthorizer } from "../preview-
|
|
3
|
+
import { i as Sandbox } from "../client-CO5ShEdk.js";
|
|
4
|
+
import { u as PreviewAuthorizer } from "../preview-DNAuiZly.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";
|
package/dist/agent/index.js
CHANGED
|
@@ -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-
|
|
5
|
-
import { t as SandboxInstance } from "../sandbox-
|
|
4
|
+
import { n as Sandbox } from "../client-B8OutXq2.js";
|
|
5
|
+
import { t as SandboxInstance } from "../sandbox-CfGVI_xk.js";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region src/agent/instances.ts
|
|
8
8
|
const managers = /* @__PURE__ */ new WeakMap();
|
package/dist/agent/preview.d.ts
CHANGED
|
@@ -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-
|
|
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";
|
|
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 };
|
|
@@ -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-
|
|
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";
|
|
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-
|
|
3326
|
+
const { discoverLocalCliAuthFiles } = await import("./local-cli-auth-D-_fMdNS.js");
|
|
3327
3327
|
return discoverLocalCliAuthFiles(backendType);
|
|
3328
3328
|
}
|
|
3329
3329
|
async function describeLocalCliAuthExpectation(backendType) {
|
|
3330
|
-
const { describeLocalCliAuthExpectation: describe } = await import("./local-cli-auth-
|
|
3330
|
+
const { describeLocalCliAuthExpectation: describe } = await import("./local-cli-auth-D-_fMdNS.js");
|
|
3331
3331
|
return describe(backendType);
|
|
3332
3332
|
}
|
|
3333
3333
|
async function hydrateLocalCliBackendAuth(backend, baseUrl, trustLocalCliAuth) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as TraceExportResult, n as HttpClient, r as SandboxInstance, u as TraceExportSink } from "./sandbox-
|
|
1
|
+
import { l as TraceExportResult, n as HttpClient, r as SandboxInstance, u as TraceExportSink } from "./sandbox-Dw9YNtU4.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";
|
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-
|
|
1
|
+
import { a as WorkspaceImagePublishRequestOptions, i as WorkspaceImagePublishInput, o as WorkspaceImagePublishResult, r as SandboxInstance, s as WorkspaceImages } from "./sandbox-Dw9YNtU4.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-
|
|
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";
|
|
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-
|
|
3
|
-
import { o as WorkspaceImages, t as SandboxInstance, x as ManagedProcessClient } from "./sandbox-
|
|
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";
|
|
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
|
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-
|
|
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";
|
|
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-
|
|
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";
|
|
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-
|
|
12
|
+
import { b as TangleSandboxClientConfig, h as TangleSandboxClient } from "./index-DdUzvzA_.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,13 +4140,6 @@ 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>;
|
|
4150
4143
|
};
|
|
4151
4144
|
/**
|
|
4152
4145
|
* 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-
|
|
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";
|
|
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-
|
|
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";
|
|
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-
|
|
10
|
+
import { s as TangleSandboxClient } from "./tangle-Dt4FMrZs.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-
|
|
1
|
+
import { r as SandboxInstance } from "./sandbox-Dw9YNtU4.js";
|
|
2
2
|
import { Fn as PreviewLinkInfo, ht as EnsureDevServerOptions } from "./types-C0XwJqxx.js";
|
|
3
|
-
import { i as Sandbox } from "./client-
|
|
3
|
+
import { i as Sandbox } from "./client-CO5ShEdk.js";
|
|
4
4
|
|
|
5
5
|
//#region src/agent/preview-operations.d.ts
|
|
6
6
|
type AgentPreviewOptions = Pick<EnsureDevServerOptions, "sessionId" | "cwd"> & {
|
|
@@ -9,10 +9,6 @@ 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";
|
|
16
12
|
//#region src/trace-exporter.ts
|
|
17
13
|
function buildTraceExportPayload(bundle, format = "tangle", serviceName = "tangle-sandbox") {
|
|
18
14
|
if (format === "tangle") return bundle;
|
|
@@ -331,7 +327,7 @@ const UNDECIDED_WRITE_STATUSES = new Set([
|
|
|
331
327
|
504
|
|
332
328
|
]);
|
|
333
329
|
const PROFILE_FILE_MOUNT_PACE_MS = 0;
|
|
334
|
-
const PROFILE_BIN_DIR_RE
|
|
330
|
+
const PROFILE_BIN_DIR_RE = /(^|\/)(s?bin)\//;
|
|
335
331
|
const PROFILE_AGENT_HOME = ["/home", "agent"].join("/");
|
|
336
332
|
/**
|
|
337
333
|
* Wire budget for a single-shot `POST /files/write` of a mount.
|
|
@@ -480,27 +476,8 @@ function fileApiTarget(mount, absolutePrefixes) {
|
|
|
480
476
|
if (mount.path.length === 0) return null;
|
|
481
477
|
return mount.path;
|
|
482
478
|
}
|
|
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
|
-
}
|
|
502
479
|
function isExecutableProfileFile(mount) {
|
|
503
|
-
return mount.executable ?? PROFILE_BIN_DIR_RE
|
|
480
|
+
return mount.executable ?? PROFILE_BIN_DIR_RE.test(mount.path);
|
|
504
481
|
}
|
|
505
482
|
function profileFileMode(mount) {
|
|
506
483
|
return isExecutableProfileFile(mount) ? 493 : void 0;
|
|
@@ -831,8 +808,7 @@ async function materializeAbsentProfileFiles(box, files, options) {
|
|
|
831
808
|
const stage = `.sandbox-profile-${globalThis.crypto.randomUUID()}`;
|
|
832
809
|
const absolutePrefixes = normalizeAbsolutePrefixes(options.fileApiAbsolutePrefixes ?? DEFAULT_PROFILE_FILE_API_ABSOLUTE_PREFIXES);
|
|
833
810
|
const manifest = await Promise.all(files.map(async (mount) => ({
|
|
834
|
-
path:
|
|
835
|
-
mountPath: mount.path,
|
|
811
|
+
path: typeof box.fs?.writeMany === "function" ? fileApiTarget(mount, absolutePrefixes) ?? mount.path : mount.path,
|
|
836
812
|
sha256: await sha256Hex(inlineContent(mount)),
|
|
837
813
|
mode: profileFileMode(mount) ?? 420
|
|
838
814
|
})));
|
|
@@ -2074,270 +2050,27 @@ function waitForReconnect(ms, signal) {
|
|
|
2074
2050
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
2075
2051
|
});
|
|
2076
2052
|
}
|
|
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
|
-
}
|
|
2264
2053
|
//#endregion
|
|
2265
2054
|
//#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
|
-
}
|
|
2321
2055
|
/** Successful immutable mount delivery is scoped to one filesystem incarnation. */
|
|
2322
2056
|
var ProfileFileDelivery = class {
|
|
2323
2057
|
delivered;
|
|
2324
2058
|
pending = Promise.resolve();
|
|
2325
|
-
unsupportedBoxes = /* @__PURE__ */ new WeakSet();
|
|
2326
2059
|
prepare(box, profile, signal, existingFiles = "allow-identical") {
|
|
2327
2060
|
const { leanProfile, deferredFiles } = splitInlineProfileFileMounts(structuredClone(profile));
|
|
2328
2061
|
validateDeferredProfileFileMounts(deferredFiles);
|
|
2329
2062
|
if (deferredFiles.length === 0) return Promise.resolve(leanProfile);
|
|
2330
|
-
const bundle = profileFileBundleKey(deferredFiles);
|
|
2331
2063
|
const prepared = this.pending.then(async () => {
|
|
2332
2064
|
signal?.throwIfAborted();
|
|
2333
2065
|
const incarnation = box.filesystemIncarnationId;
|
|
2334
|
-
|
|
2066
|
+
const fingerprint = canonicalCandidateDigest(deferredFiles);
|
|
2067
|
+
if (incarnation === void 0 || this.delivered?.incarnation !== incarnation || this.delivered.fingerprint !== fingerprint) {
|
|
2335
2068
|
this.delivered = void 0;
|
|
2336
|
-
await
|
|
2069
|
+
await materializeProfileFileMounts(box, deferredFiles, { existingFiles });
|
|
2337
2070
|
if (box.filesystemIncarnationId !== incarnation) throw new StateError("Filesystem incarnation changed during profile file delivery", box.filesystemIncarnationId ?? "unknown", incarnation ?? "unknown");
|
|
2338
2071
|
if (incarnation !== void 0) this.delivered = {
|
|
2339
2072
|
incarnation,
|
|
2340
|
-
fingerprint
|
|
2073
|
+
fingerprint
|
|
2341
2074
|
};
|
|
2342
2075
|
}
|
|
2343
2076
|
signal?.throwIfAborted();
|
|
@@ -2346,73 +2079,6 @@ var ProfileFileDelivery = class {
|
|
|
2346
2079
|
this.pending = prepared.then(() => {}, () => {});
|
|
2347
2080
|
return prepared;
|
|
2348
2081
|
}
|
|
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
|
-
}
|
|
2416
2082
|
};
|
|
2417
2083
|
//#endregion
|
|
2418
2084
|
//#region ../../../packages/runtime-contracts/dist/interactive-session-http.js
|
|
@@ -8045,12 +7711,6 @@ var SandboxInstance = class SandboxInstance {
|
|
|
8045
7711
|
assertFilesystemIncarnationReady() {
|
|
8046
7712
|
if (this.filesystemIncarnationReadiness !== "ready") throw new StateError("Sandbox filesystem incarnation is not ready", this.status, "running with a ready filesystem incarnation");
|
|
8047
7713
|
}
|
|
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
|
-
*/
|
|
8054
7714
|
async runtimeFetch(path, options, fetchOptions) {
|
|
8055
7715
|
this.assertFilesystemIncarnationReady();
|
|
8056
7716
|
const url = `/v1/sandboxes/${encodeURIComponent(this.id)}/runtime${path}`;
|
|
@@ -1875,15 +1875,7 @@ declare class SandboxInstance {
|
|
|
1875
1875
|
private ensureRunning;
|
|
1876
1876
|
private ensureRunningForPrompt;
|
|
1877
1877
|
private assertFilesystemIncarnationReady;
|
|
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>;
|
|
1878
|
+
private runtimeFetch;
|
|
1887
1879
|
/**
|
|
1888
1880
|
* Delegates to the shared `parseSSEStream` in `lib/sse-parser.ts`
|
|
1889
1881
|
* — one canonical SSE implementation for the whole SDK. The
|
package/dist/tangle/index.d.ts
CHANGED
|
@@ -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-
|
|
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";
|
|
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 };
|
package/dist/tangle/index.js
CHANGED
|
@@ -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-
|
|
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";
|
|
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-
|
|
2
|
+
import { n as createSandboxInstanceFromResponse } from "./sandbox-CfGVI_xk.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
|
|
3
|
+
"version": "0.60.36",
|
|
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",
|
|
153
154
|
"@tangle-network/agent-profile-materialize": "0.22.4",
|
|
154
155
|
"@tangle-network/cli-agent-registry": "0.6.2",
|
|
155
|
-
"@tangle-network/sdk": "4.0.3",
|
|
156
|
-
"@tangle-network/sse-core": "0.0.0",
|
|
157
156
|
"@tangle-network/runtime-contracts": "0.16.0",
|
|
158
|
-
"@
|
|
157
|
+
"@tangle-network/sdk": "4.0.3",
|
|
158
|
+
"@tangle-network/sse-core": "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 { join } from "node:path";
|
|
4
3
|
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
5
|
//#region ../../../packages/cli-agent-registry/dist/local-cli-auth.mjs
|
|
6
6
|
const DEFAULT_MODE = 384;
|
|
7
7
|
function readAuthFile(sourcePath, targetPath) {
|