Files
openclaw/src/plugin-sdk/sandbox.ts
Renaud Cerrato 95b97e5b0b fix(exec): fail invalid explicit workdir before running (#94441)
* fix(exec): fail invalid explicit workdir before running

* test(exec): tighten invalid workdir regression

* fix(exec): clarify invalid workdir recovery

* refactor(exec): centralize workdir resolution

* test(exec): update invalid workdir assertion

* fix(exec): harden backend workdir contract

* fix(exec): map missing backend host workdirs

* fix(exec): reject control commands before workdir prep

* fix(exec): defer env hook until backend cwd validation

* chore(sdk): refresh plugin api baseline

* test(agents): drop redundant definition assertions

* test(exec): use real config workdirs

* test(exec): use tracked temp dirs

* test(openshell): keep temp setup local

* test: update temp-dir route fixture

---------

Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com>
2026-06-26 08:02:00 +10:00

72 lines
1.9 KiB
TypeScript

/**
* Public SDK subpath for sandbox backends, SSH execution, and temp workspace helpers.
*/
export type {
CreateSandboxBackendParams,
RemoteShellSandboxHandle,
RunSshSandboxCommandParams,
SandboxBackendCommandParams,
SandboxBackendCommandResult,
SandboxBackendExecSpec,
SandboxBackendFactory,
SandboxFsBridge,
SandboxFsStat,
SandboxBackendHandle,
SandboxBackendId,
SandboxBackendManager,
SandboxBackendPreparedWorkdirDiscarder,
SandboxBackendRegistration,
SandboxBackendRuntimeInfo,
SandboxBackendWorkdirValidation,
SandboxBackendWorkdirResolver,
SandboxBackendWorkdirValidator,
SandboxContext,
SandboxResolvedPath,
SandboxSshConfig,
SshSandboxSession,
SshSandboxSettings,
} from "../agents/sandbox.js";
export type { OpenClawConfig } from "../config/config.js";
export {
buildExecRemoteCommand,
buildRemoteWorkdirValidationCommand,
buildRemoteCommand,
buildSshSandboxArgv,
buildValidatedExecRemoteCommand,
createRemoteShellSandboxFsBridge,
createWritableRenameTargetResolver,
createSshSandboxSessionFromConfigText,
createSshSandboxSessionFromSettings,
disposeSshSandboxSession,
getSandboxBackendFactory,
getSandboxBackendManager,
getSandboxBackendWorkdirResolver,
isToolAllowed,
registerSandboxBackend,
requireSandboxBackendFactory,
resolveSandboxRuntimeStatus,
resolveWritableRenameTargets,
resolveWritableRenameTargetsForBridge,
runSshSandboxCommand,
sanitizeEnvVars,
shellEscape,
uploadDirectoryToSshTarget,
} from "../agents/sandbox.js";
export {
runPluginCommandWithTimeout,
type PluginCommandRunOptions,
type PluginCommandRunResult,
} from "./run-command.js";
export { resolvePreferredOpenClawTmpDir } from "../infra/tmp-openclaw-dir.js";
export {
tempWorkspace,
tempWorkspaceSync,
type TempWorkspace,
type TempWorkspaceOptions,
type TempWorkspaceSync,
withTempWorkspace,
withTempWorkspaceSync,
} from "../infra/private-temp-workspace.js";