@tanstack/ai-sandbox
Version:
Provider-agnostic sandbox layer for TanStack AI — run harness adapters inside isolated sandboxes (defineSandbox, defineWorkspace, withSandbox) with a uniform SandboxHandle, workspace bootstrap, policy, and resumable lifecycle.
73 lines (72 loc) • 8.41 kB
TypeScript
export { SandboxCapability, SandboxPolicyCapability, ToolBridgeProvisionerCapability, getSandbox, provideSandbox, getSandboxPolicy, provideSandboxPolicy, getToolBridgeProvisioner, provideToolBridgeProvisioner, } from './capabilities.js';
export { SandboxInstanceStoreCapability, getSandboxInstanceStore, provideSandboxInstanceStore, InMemorySandboxInstanceStore, defineSandboxInstanceStore, } from './instance-store.js';
export type { SandboxInstanceStore, SandboxInstanceRecord, } from './instance-store.js';
export { SandboxCheckpointError, SandboxCheckpointConflictError, SandboxCheckpointDuplicateIdError, SandboxCheckpointInvalidIdError, SandboxCheckpointInvalidEntryError, SandboxCheckpointParentMismatchError, SandboxCheckpointNotHeadError, SandboxCheckpointWriterConflictError, SandboxCheckpointWriterLostError, isForkCapableSandboxCheckpointStore, InMemorySandboxCheckpointStore, defineSandboxCheckpointStore, } from './checkpoint-store.js';
export type { SandboxCheckpoint, SandboxCheckpointStore, SandboxSnapshotEntry, SandboxSnapshotFileEntry, SandboxSnapshotDirectoryEntry, SandboxSnapshotArtifact, SandboxCheckpointErrorCode, SandboxCheckpointWriter, SandboxCheckpointWriterLease, SandboxCheckpointStoreOptions, SandboxCheckpointForkInput, SandboxCheckpointForkCapability, ForkCapableSandboxCheckpointStore, } from './checkpoint-store.js';
export { SandboxSnapshotError, defaultSandboxSnapshotPolicy } from './snapshots.js';
export type { SandboxSnapshotErrorCode, SandboxSnapshotPolicy, } from './snapshots.js';
export { memorySandboxSnapshots } from './memory-snapshots.js';
export type { MemorySandboxSnapshots, MemorySandboxSnapshotsOptions, } from './memory-snapshots.js';
export { createSandboxSnapshots } from './snapshot-operations.js';
export type { CreateSandboxSnapshotsInput, ForkSandboxSnapshotInput, ReadSandboxSnapshotArtifactInput, SandboxSnapshots, SaveSandboxSnapshotInput, SnapshotPersistence, } from './snapshot-operations.js';
export { createSnapshotTools } from './snapshot-tools.js';
export type { CreateSnapshotToolsOptions } from './snapshot-tools.js';
export { ProjectionCapability, getWorkspaceProjection, provideWorkspaceProjection, } from './projection.js';
export type { WorkspaceProjection } from './projection.js';
export { withSandbox } from './middleware.js';
export type { SandboxMiddlewareOptions } from './middleware.js';
export { isSandboxToolCall } from './tool-history.js';
export { defineSandbox } from './sandbox.js';
export type { SandboxConfig, SandboxDefinition, SandboxEnsureContext, SandboxLifecycle, SandboxHooks, ReuseStrategy, SnapshotStrategy, } from './sandbox.js';
export { defineWorkspace, gitSource, githubRepo, localSource, fileSkill, agentSkill, mcpSkill, gitSkill, } from './workspace.js';
export type { WorkspaceDefinition, WorkspaceSource, WorkspaceSkill, PackageManager, McpConfig, } from './workspace.js';
export { createSecrets, bearer, isSecretRef, resolveSecret, resolveBearer, resolveAllSecrets, } from './secrets.js';
export type { SecretRef, Secrets, BearerRef } from './secrets.js';
export { defineSandboxPolicy, evaluateCommand, commandAliases } from './policy.js';
export type { SandboxPolicy, PolicyDecision, CommandRules, CapabilityRules, } from './policy.js';
export type { SandboxProvider, SandboxHandle, SandboxCapabilities, SandboxFs, SandboxFsStat, SandboxGit, SandboxProcess, SandboxPorts, SandboxEnv, SandboxChannel, SpawnHandle, ExecResult, ProcessOptions, SnapshotRef, SandboxCreateInput, SandboxResumeInput, SandboxRestoreInput, SandboxDestroyInput, } from './contracts.js';
export { bootstrapWorkspace, detectPackageManager, DEFAULT_WORKSPACE_ROOT, } from './bootstrap.js';
export { resolveHarnessCwd } from './harness-cwd.js';
export type { BootstrapResult } from './bootstrap.js';
export { writeAgentsFile, resolveGitSkillDir, discoverSkillDirs, formatWorkspaceScriptsSection, mergeAgentsContent, } from './agents-file.js';
export type { DiscoveredSkillDir } from './agents-file.js';
export { createExecBackedGit } from './git-exec.js';
export { spawnNdjson, toLines, startJournaledAgent, readJournalNdjson, } from './runner.js';
export type { SpawnNdjsonOptions, JournalOptions } from './runner.js';
export { DEFAULT_JOURNAL_DIR, encodeRunId, EXIT_SENTINEL_KEY, EXIT_SENTINEL_NONCE_KEY, exitSentinelLine, parseExitSentinel, journalPaths, journaledCommand, journalFollowCommand, journalReadCommand, journalExistsCommand, journalListCommand, journalMtimeListCommand, parseJournalMtimeListing, journalExitProbeCommand, parseJournalExit, decodeJournalRunId, } from './journal.js';
export type { JournalPaths, JournalMtimeListing, JournalDirEntry, DecodedJournalRunId, } from './journal.js';
export { pruneJournals, DEFAULT_ORPHAN_TTL_MS, DEFAULT_MAX_DELETES, } from './journal-sweep.js';
export type { PruneJournalsOptions, PruneJournalsResult, KeptJournal, KeptJournalReason, PruneJournalsFailure, } from './journal-sweep.js';
export { reapDetachedRuns, probeRunExit, DEFAULT_RUN_BUDGET_MS, DEFAULT_MAX_RUNS, DEFAULT_EXIT_PROBE_BYTES, } from './reap.js';
export type { RunExitProbe, ReapRunOutcome, ReapRunEntry, ReapResult, ReapOptions, } from './reap.js';
export { reclaimSandbox, sandboxReclaimer, SandboxReclaimFailedError, } from './reclaim.js';
export type { ReclaimOutcome, ReclaimSandboxOptions } from './reclaim.js';
export { DEFAULT_JOURNAL_POLL_MS, journalReadStrategy, readJournal, } from './journal-reader.js';
export type { ReadJournalOptions } from './journal-reader.js';
export { decodeBase64Stream, toJournalLines } from './journal-bytes.js';
export type { JournalLine } from './journal-bytes.js';
export { createRunScopedIdGen, chunkFingerprint, chunkFingerprintIgnoringThreadId, chunkThreadId, } from './chunk-identity.js';
export { alignToStoredLog, isBridgeCustomChunk, JournalReplayDivergedError, JournalReplayThreadIdMismatchError, DEFAULT_MAX_OUT_OF_BAND_SKIP, } from './align.js';
export type { AlignToStoredLogOptions } from './align.js';
export { awaitAttachableJournal, JournalAttachUnavailableError, DEFAULT_ATTACH_JOURNAL_WAIT_MS, DEFAULT_ATTACH_PROBE_INTERVAL_MS, } from './attach-preflight.js';
export type { AttachUnavailableReason, AwaitAttachableJournalOptions, } from './attach-preflight.js';
export { SandboxDurabilityCapability, getSandboxDurability, provideSandboxDurability, DurableAttachNotSupportedError, DurableRunIdRequiredError, DurableThreadIdRequiredError, resolveDurableRunId, resolveDurableThreadId, journalOptionsFor, alignedIfAttaching, } from './durability.js';
export type { SandboxDurabilityOptions, SandboxDurabilityLog, SandboxRunDurability, } from './durability.js';
export { sandboxRunDriver, RunDriverPipeOutsideClaimError } from './driver.js';
export type { SandboxRunDriverOptions } from './driver.js';
export { RunClaimNotAcquiredError, RunClaimLostError, DEFAULT_FENCE_QUIET_MS, } from './claim.js';
export { startHostToolBridge, hostForSandbox, createToolBridgeCore, handleBridgeJsonRpc, timingSafeBearerEqual, nodeHttpBridgeProvisioner, BRIDGED_MCP_SERVER_NAME, } from './tool-bridge.js';
export type { HostToolBridge, StartBridgeOptions, ToolBridgeCore, ToolBridgeCoreOptions, ToolDescriptor, ToolCallResult, BridgePermission, PermissionToolResult, ToolBridgeProvisioner, ToolBridgeProvisionOptions, ProvisionedBridge, } from './tool-bridge.js';
export { createBridgeEventChannel, mergeChunkStreams } from './bridge-events.js';
export type { BridgeEventChannel } from './bridge-events.js';
export { remoteToolStubs, toolDescriptors, httpRemoteToolExecutor, executeHostTool, isToolExecRequest, } from './remote-tools.js';
export type { RemoteToolExecutor, RemoteToolExecuteOptions, ToolExecRequest, } from './remote-tools.js';
export { pipeToRunLog, RunController } from './run.js';
export type { RunDeps, PipeToRunLogOptions, RunControllerStartInput, RunHandle, } from './run.js';
export { resolveApproval, approvalId, buildApprovalRequestedEvent, APPROVAL_REQUESTED_EVENT, } from './approvals.js';
export type { ResolveApprovalInput, ApprovalOutcome } from './approvals.js';
export { watchWorkspace, diffSnapshots } from './watch.js';
export type { SandboxFileEvent, FileEvent, FileEventType, WatchOptions, SandboxWatchHandle, } from './watch.js';
export { computeSandboxKey, computeWorkspaceHash } from './key.js';
export type { SandboxKeyInput } from './key.js';
export { UnsupportedCapabilityError, MissingSandboxError } from './errors.js';