@bendyline/gezel-script-runtime

中文文档
1.0.13发布于 2026/11/05MITTypeScriptES Module构建来源已验证近 30 天下载 1805

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

中文使用文档
文档目录4 节
  1. 东道国一体化
  2. 脚本简介(实验)
  3. 稳定
  4. 文档

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

可移植、 能力介导的脚本执行 格泽尔。 。 。 .

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

npm install @bendyline/gezel-script-runtime

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

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

东道国一体化

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

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。在建设时装入 用于浏览器,或在节点读取:

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的日志通知.

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

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 服务是其第一个主机,执行者合同可能会随着其他主机增长 通过它.

文档

麻省理工学院

版本与发布记录

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

版本发布日期距今
1.0.13latest2026/11/053 天前
1.0.122026/11/044 天前
1.0.112026/10/2811 天前
1.0.102026/10/2712 天前
1.0.92026/10/2712 天前
1.0.82026/10/2415 天前

关于 @bendyline/gezel-script-runtime 的常见问题

@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 和提交记录判断。