# @bendyline/gezel-script-runtime 中文文档

规范地址：https://npmcn.com/package/%40bendyline/gezel-script-runtime/

版本：1\.0\.13
npm 元数据更新时间：2026-11-05T04:00:53.989Z
中文译文更新时间：2026-11-08T10:10:40.596Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bendyline/gezel-script-runtime
原文对照：https://npmcn.com/package/%40bendyline/gezel-script-runtime/?lang=original
项目主页：https://github.com/bendyline/gezel
源码仓库：https://github.com/bendyline/gezel

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：98.3 kB，19 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：4 个
- 首次发布：2026-09-27T15:41:31.101Z
- 最新版本发布：2026-11-05T04:00:53.605Z
- 近 30 天下载量：1805（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

可移植,能力介导的脚本执行 Gezel.

## 安装

```sh
npm install @bendyline/gezel-script-runtime
```

也可以使用：`pnpm add @bendyline/gezel-script-runtime`、`yarn add @bendyline/gezel-script-runtime`、`bun add @bendyline/gezel-script-runtime`

## README

# @bendyline/gezel-script-runtime (英语)

可移植、 能力介导的脚本执行 [格泽尔](https://github.com/bendyline/gezel)。 。 。 .

此软件包定义一个独立的平台 `ScriptExecutor` 合同,共享 便携式跑车,以及运行 Gezel 脚本的快速JS-WASM执行器 真正的格泽尔SDK。 无法使用节点沙盒的主机——浏览器和Web Views—— 运行相同的捆绑标准脚本, SDK 并在专用 Web 内检查 劳工. Gezel服务仍然默认选择了它的节点沙盒.

```bash
npm install @bendyline/gezel-script-runtime
```

需要节点24或从节点使用时更新.

| 导入 | 它提供的东西 |
| --- | --- |
| `@bendyline/gezel-script-runtime` | `PortableScriptRunner` 编辑 `ScriptExecutor` 合同 |
| `@bendyline/gezel-script-runtime/quickjs` | `QuickJSScriptExecutor`,用于专职工人内部 |
| `@bendyline/gezel-script-runtime/web-worker` | `WebWorkerScriptExecutor`,快速JS网络工作员的东道方 |
| `@bendyline/gezel-script-runtime/worker-protocol` | 主机和工人共享的信息类型和限制 |
| `@bendyline/gezel-script-runtime/compile` | `compilePortableScript`,沙盒型号的脚本转接步骤 |
| `@bendyline/gezel-script-runtime/source` | 脚本诊断、手书脚本验证和脚手架 |
| `@bendyline/gezel-script-runtime/meta` | `parseScriptMeta`,脚本元数据解析 |

## 东道国一体化

信任的主机选择执行器 。 脚本和模型生成的元数据 无法改变 在桌面上, 服务输出一个适配器, 每个都放置 快JS嘉宾专注工作者:

```ts
import { QuickJSWorkerExecutor, ScriptRunner, Store } from '@bendyline/gezel-service';

const store = new Store({ home: '/path/to/gezel-home' });
await store.ensureLayout();

const runner = new ScriptRunner({
  store,
  executor: new QuickJSWorkerExecutor(),
  // Add chat, memory, tasks, … for the capabilities your scripts use.
});
```

使用运行器执行产品:它拥有元数据/输入验证, aI 活动设置、能力调度、输出验证、运行历史以及 秘密编辑。 执行者自己没有提供这些许可. 返回成功的 VM 结果不能确定脚本是否有效 产品产出。 以上建筑为嵌入器和符合性 测试; 没有 UI 偏好、 API 参数或自动倒置 选择它.

对于另一个主机,导入 `QuickJSScriptExecutor` 从 `@bendyline/gezel-script-runtime/quickjs` 一个忠于职守的工人 供应 信任的 SDK 来源为 `sdkModuleSource`,一个同步 `compile` 函数, a `now()` 时钟,并调回主机的能力调度器。 SDK 来源 是自成一体的 `portable` 盖起它 `@bendyline/gezel-sdk` - 船舶 Gezel服务读取相同的文件, `dist/portable.js`。在建设时装入 用于浏览器,或在节点读取:

```ts
import { readFile } from 'node:fs/promises';
import { fileURLToPath } from 'node:url';

const sdkModuleSource = await readFile(
  fileURLToPath(import.meta.resolve('@bendyline/gezel-sdk/portable')),
  'utf8',
);
```

允许脚本导入 `@bendyline/gezel-sdk/checks` 也读一下这个模块 一样的方式,并通过它像 `modules: { '@bendyline/gezel-sdk/checks': source }`。 。 。 . 如果电脑在运行中能入睡,请做 `now()` 放弃花的时间 睡着了,所以跑步没有时间 它永远不会使用的时间。 东道主必须 还执行一个期限,并独立终止工人。 便携 执行器使用标准主机定时器来泵出承诺;其来宾不接收定时器 或平台API.

执行者使用 `quickjs-emscripten` WASM 软件包, 所以需要 WebView 主机 没有土生土长的快JS桥. 浏览器主机可以编译和验证所支持的内容 构建时标准库的子集。 项目和用户类型Script 源编译为运行 TypeScript 的单独的编译器工作 节点主机的浏览器编译器已禁用;它只使用剖析器和转接器. 编译程序在 QuickJS 中执行, 在编译器工作或主机中从未执行 JavaScript域 (英语). 汇编有25.6万个特征源和 东道方执行10秒期限。 只有捆绑的SDK和检查模块可以 进口.

源保存保存无效编辑并返回共享元数据、语法和 运行时间相容性诊断. 以哈什为基础的冲突探测是原子. 工程/用户范围明确,经编辑的代码永远不能获得不可改变的 标准范围。 手动运行和任务钩/出入口具有相同的能力, 政策和审计检查。 任务说明业务仍限于目前 项目,对于任务自主运行,当前的任务和积极步骤.

盖茨可以持有升级;经批准的过渡运行普通出站钩和 将持续的任务与他们所检查的快照进行比较。 门/出门儿童 保留其步骤触发器和记录 `parentRunId`,同时继承父权 取消、余下预算以及实际政策上限。 信任的主机召回 包含此权限; 序列化的 SDK 输入不能提供回调、 绕行 门,或部队完成。 任务控制电话从生命周期/门拒绝 保留永久检查站的脚本。 从脚本创建任务 不启动背景模型工作。 手工业手册的资料来源是逐字取景 任务,所以以后的编辑不能改变运行的配方 。 审计记录范围, 来源 SHA-256 和模板身份;工艺手册来源从未获得过 标准图书馆信任.

`PortableScriptRunner` 选择主机解析器、调度器、配置读取器和 原子运行记录作家. 它共享桌面输入/输出验证器, 方法 能力、元数据分析和执行政策检查。 一个主机记录录制 在任何效果之前并使用普通存储已完成的运行 `projects/<id>/scripts/runs/<date>/<runId>.json` 公约。 两人之间, 进度快照组合为每张1 `checkpointIntervalMs` (违约1 s); 当最近没有这种快照时,呼吁的意图就写在它的效应之前. 无效的输出和失败的审计书写不能报告成功, 也不能报告 门,没有判决。 声明的任何其他脚本 `outputs` 但从不 电话 `gezel.output()` 结束 `ok` 在其日志中没有任何输出和警告. 跑者停止跑步 超过250 000个主机呼叫 (单位:千美元)`DEFAULT_MAX_HOST_CALLS`,设置为 `limits.maxHostCalls`这是一个后站 与出走的回路相对,大小为能触及上万的脚本 记录。 标准范围和来源信任的脚本没有呼叫限制 默认( e)`limits.maxTrustedHostCalls`),并被其超时限制. 这个 QuickJS 执行器有自己的一个单独的,小得多的预算: 1000个主机 每次执行的电话和通知 `maxCalls` 选项,以及 `QUICKJS_MAX_CALLS` 在网络工人主机中). 两者都适用,所以快速JS运行停止 以先到达的为准。 截止时间省去电脑花费的时间 睡着了。 取消从主机运行 甚至在最后期限之前生效, 等待已经开始的东道方效应和儿童审计的解决.

## 脚本简介(实验)

脚本导入 `gezel` 财务报告和审定财务报表 `defineScript` 从 `@bendyline/gezel-sdk` 和往常一样. 服务适配器也捆绑 `@bendyline/gezel-sdk/checks`。从 文件系统/网络和其他SDK子路径被拒绝。 节点全局, 原始 文件系统、原始网络、定时器、子进程 API 或软件包解析器 安装在来宾中。 SDK行动跨越JSON边界进入正常状态 主机调度器 . `console` 方法使用SDK的日志通知.

**等待模块级别上的所有同步工作,然后写入输出 .** 例如:

```ts
import { gezel } from '@bendyline/gezel-sdk';

const files = await gezel.artifacts.list();
gezel.output({ count: files.length });
```

运行时间拒绝模块完成并等待主机调用并拒绝输出 当主机呼叫等待。 抓住等待的能力否定得到支持, 包括类型 `code`。分离同步函数和浮动承诺 不支持 : QuickJS 绑定不显示未处理的拒绝 追踪器,所以无法可靠地报告解开的承诺失败。 这不是 完全节点脚本兼容性.

QuickJS 执行器默认为 32 MiB 来宾堆放, 512 KiB 来宾堆放, 1000个主机 电话和通知,32个待拨电话,每台100万个UTF-16代码单位 源或消息,和400万总单位。 服务人员还限制JSON的交通,并拥有 拥有 V8 堆积限制 。 这些是独立的界限,不是全部的应用程序内存 限制。 被打断的工人忽略了迟到的答复 跑者冻结了它 审计记录在修订和持续前.

终止终止停止了来宾行刑和未来通话. 它不能撤销或取消一个 已启动主机写入或网络请求; 运行记录待定 操作仍有可能完成。 脚本不能将超时视为 交易回滚。 取消会取消新电话并等待 已经发送的文件操作,然后才释放录入。 一个东道主 关闭中跑标记未完成的记录在重开时中断, 并且永远不再播放 他们.

## 稳定

以上出口为上市API. 软件包是新的: Gezel 服务是其第一个主机,执行者合同可能会随着其他主机增长 通过它.

## 文档

-   [仓库和完整文件](https://github.com/bendyline/gezel)
-   [格泽尔SDK](https://www.npmjs.com/package/@bendyline/gezel-sdk)

麻省理工学院

## 常见问题

### @bendyline/gezel-script-runtime 是什么？

可移植,能力介导的脚本执行 Gezel\.

### 如何安装 @bendyline/gezel-script-runtime？

在项目目录运行 npm install @bendyline/gezel-script-runtime，或使用 pnpm add / yarn add / bun add。

### @bendyline/gezel-script-runtime 支持 TypeScript 吗？

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

### @bendyline/gezel-script-runtime 支持 ESM 还是 CommonJS？

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

### @bendyline/gezel-script-runtime 需要什么版本的 Node\.js？

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

### @bendyline/gezel-script-runtime 可以商用吗？

@bendyline/gezel-script-runtime 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bendyline/gezel-script-runtime 的下载量有多少？

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

### @bendyline/gezel-script-runtime 还在维护吗？

最新版本 1\.0\.13 发布于 2026/11/05（3 天前）；至今共发布 15 个版本，其中过去 12 个月发布了 15 个；首次发布于 2026/09/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

