@chamvi/sandbox-local

中文文档
0.8.0发布于 2026/11/09Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 2854

Chamvi的本地沙盒提供商:临时目录中的工作空间,不隔离.

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. 它做了什么,没有做什么
  4. 选项
  5. API 密码
  6. 许可证

@chamvi/sandbox-local

@chamvi/ sandbox- 当地

临时目录中的工作空间,用于开发和测试.
命令作为您的用户在主机上被产出:没有容器,没有隔离.
使用 @chamvi/sandbox-docker 或者说 @chamvi/sandbox-k8s 对于任何模型可以引导.

npm version CI License


目录

安装

npm install @chamvi/sandbox-local @chamvi/sandbox @chamvi/core ai --save

仅限无害环境管理,节点.js >=26.0.0,POSIX主机(Linux 或 macOS),带有 git 编辑 PATH。 。 。 . @chamvi/core 财务报告和审定财务报表 @chamvi/sandbox 是同行依赖;没有其他运行时间依赖.

使用量

import { createWorkspaceManager } from '@chamvi/sandbox';
import type { IWorkspaceManager } from '@chamvi/sandbox';
import { createLocalSandbox } from '@chamvi/sandbox-local';

// no isolation: commands run as your user, for development and tests only
export function createDevWorkspaces(root?: string): IWorkspaceManager {
    return createWorkspaceManager({ provider: createLocalSandbox({ root }) });
}

每个工作空间都是文件夹 <root>/<id>/ (单位:千美元)root 默认为 <os tmpdir>/chamvi-workspaces与 repo/ (模式的) /workspace, (中文(简体) ), home/, (中文(简体) ), tmp/ (单位:千美元) workspace.json 记录(运行编号、部署、储存、参考、, env、创建和期满) find 重建工作空间, 并读取垃圾收集, 因此重新启动的过程再次到达运行的工作空间 。 创造者 env 在磁盘上写入记录,所以文件夹是 0700 和记录 0600 (仅拥有者). dispose() 删除文件夹.

它做了什么,没有做什么

没有隔离. 一个命令作为主机用户运行,与主机的文件系统,网络和进程联系. /workspace 工具输入中的路径仅限于文件夹,包含符号链接(其真实路径离开文件夹的路径,例如通过寄存器带来的链接,是一个 ValidationError; 在每次通话前检查, 因此同时运行的命令仍然可以互换链接, 但是 bash 能够 cd / 并读取您的SSH密钥。 把它用在你的机器上 还有你信任的模型和寄存器 还有测试.

它所执行的:

  • 环境: 只有主机 PATH, (中文(简体) ), HOME 财务报告和审定财务报表 TMPDIR 在工作空间文件夹内, GIT_TERMINAL_PROMPT=0, (中文(简体) ), GIT_CONFIG_NOSYSTEM=1 (一个系统 gitconfig 可以命名一个证书助手, 如 macOS) osxkeychain, (中文(简体) ), NPM_CONFIG_UPDATE_NOTIFIER=false, (中文(简体) ), CI=true,软件包缓存变量(XDG_CACHE_HOME, (中文(简体) ), npm_config_cache, (中文(简体) ), PIP_CACHE_DIR, (中文(简体) ), GOMODCACHE, (中文(简体) ), GOCACHE, (中文(简体) ), COMPOSER_CACHE_DIR下 <root>/.cache,由根的每个工作空间共享(cache: false 未设置),并配置 env。没有其他主机变量(指针、云证书)达到命令.
  • 暂停和中止:每个命令启动自己的进程组(detached); 超时、中止或处置会用 SIGKILL包括背景孙辈。 杀死计时器在孩子离开时被清除,因此它从不表示再利用的pid. 当它开始的背景工作时退出的命令仍然保留其输出(node server.js & echo started返回 2 s (KILL_GRACE_MS)在出口后使用自己的出口代码 timedOut: false;该任务一直运行到工作空间被处理为止,就像多克和库伯涅茨一样,其输出也重新定向(nohup node server.js > log 2>&1 &) (中文(简体) ). 工作区会记得这样的命令的流程组,一旦组结束就会忘记它(每秒检查一次, LINGER_CHECK_MS;一个组的ID只在每个成员消失后再被再使用),所以处置会杀死这些任务,而不是一个后来接管了ID的组. 剩下的一个窗口是一个结束的组,而另一个进程组则在第二组内进行。 只有产生工作的过程才知道其群体,因此,工作也随着这一过程而死(在工作过程中) exit,该 chamvi CLI 到达 SIGTERM 和 SIGINT 上 : 与 Docker 或 Kubernetes 工作空间不同, 重启后再次发现的本地程序保存其文件但没有背景工作, 和 SIGKILL 所杀的进程( 或一个在不带设备的情况下退出的程序) exit 事件,例如,在未处理的SIGTERM上)离开工作运行,在任何后处理之外.
  • 输出盖:每条溪流64个KiB,排出过水口.
  • 无图像: 本地工作空间不运行容器图像, 因此 create_workspace 从未提供 image 此提供者( 请求的是一个 ValidationError) (中文(简体) ).
  • 终身数字 : limits.maxLifetimeMs (违约7天)是期满; collectGarbage({ deployment, isSettled }) 删除部署中已过期的工作空间文件夹 root (以及坠毁过程)和 isSettled,那些定居的跑道, 先处理开放的跑道。 没有工作空间的文件夹被留下。 无法删除的文件夹不会停止通行: 其他的去, 一个去 SandboxError 与计数和第一个失败 投出在结尾.

cpu, (中文(简体) ), memory, (中文(简体) ), storage 财务报告和审定财务报表 pids 没有执行,所以 limits 带 maxLifetimeMs 只有这个.

选项

createLocalSandbox(options?)数字 :

选项类型默认说明
rootstring<os tmpdir>/chamvi-workspaces每个工作空间有一个文件夹的目录
envRecord<string, string>无添加到每个工作空间的环境( 胜过默认)
limits{ maxLifetimeMs? }604_800_000工作空间的硬命盖
cachebooleantrue将软件包缓存指向 <root>/.cache
clockIClocksystemClock过期和超时

API 密码

导出仁爱目的
createLocalSandbox函数这个 ISandboxProvider (单位:千美元)name: 'local'(中文(简体) )

类型 : LocalSandboxOptions。 。 。 .

许可证

原载 Apache 许可证 2.0。 。 。 .

版本与发布记录

@chamvi/sandbox-local 共发布 15 个版本,首次发布于 2026/10/25;过去 12 个月发布了 15 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.8.0latest2026/11/09今天
0.7.32026/11/063 天前
0.7.22026/11/053 天前
0.7.12026/11/054 天前
0.7.02026/11/045 天前
0.6.12026/11/045 天前

关于 @chamvi/sandbox-local 的常见问题

@chamvi/sandbox-local 是什么?

Chamvi的本地沙盒提供商:临时目录中的工作空间,不隔离.

如何安装 @chamvi/sandbox-local?

在项目目录运行 npm install @chamvi/sandbox-local,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@chamvi/core(^0.8.0)、@chamvi/sandbox(^0.8.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@chamvi/sandbox-local 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@chamvi/sandbox-local 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@chamvi/sandbox-local 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=26.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@chamvi/sandbox-local 可以商用吗?

@chamvi/sandbox-local 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@chamvi/sandbox-local 的下载量有多少?

根据 npm 官方下载统计,@chamvi/sandbox-local 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,854 次,日均约 95 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chamvi/sandbox-local 还在维护吗?

最新版本 0.8.0 发布于 2026/11/09(今天);至今共发布 15 个版本,其中过去 12 个月发布了 15 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。