# @cotal-ai/lang 中文文档

规范地址：https://npmcn.com/package/%40cotal-ai/lang/

版本：0\.157\.2
npm 元数据更新时间：2026-11-10T21:03:11.283Z
中文译文更新时间：2026-11-10T20:33:50.752Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40cotal-ai/lang
原文对照：https://npmcn.com/package/%40cotal-ai/lang/?lang=original
源码仓库：https://github.com/Cotal-AI/Cotal

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

- 包体积（解压后）：1.3 MB，128 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-08-13T23:16:18.378Z
- 最新版本发布：2026-11-10T21:03:10.905Z
- 近 30 天下载量：69564（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：380（近 12 个月 380 个）

## 中文简介

cotal-lang:受限-JS工作流程语言. 解析器和验证器,效果界面,步骤日记,解释器,以及模拟处理器. 这要看收押金里没有别的了.

## 安装

```sh
npm install @cotal-ai/lang
```

也可以使用：`pnpm add @cotal-ai/lang`、`yarn add @cotal-ai/lang`、`bun add @cotal-ai/lang`

## README

# @cotal-ai/lang (英语)

Cotal Lang, 工作流程语言 a 持久 Cotal 运行执行: JavaScript 在 每一次与世界的互动都是十几个效应之一 其他的都是纯净的 这个 软件包是验证器、解释器、步骤日记、效果界面一个主机 执行,以及模拟和模拟运行,运行一个没有经纪人的程序.

**等级 :** `packages/` (标准). 取决于收押金中其他的什么, 它知道效果, 不是关于NATS。 在网格上运行程序的主机是 `@cotal-ai/runtime`。 。 。 .

**两个引擎.** `run`编号 :`resume` 是树行者,语言版本 `1`,它会保持回放 用于记录在其下的每一次运行的引擎. `engine/` 是一个版本 `2`:一种不同的语言,而不是更快 一个,一个新的司机运行 执行。 每个引擎都印着它用自己的钉子 将录制的版本与自己的版本相比较,这就是为什么 `WALKER_LANGUAGE_VERSION` 财务报告和审定财务报表 `ENGINE_LANGUAGE_VERSION` 是两个常数 `LANGUAGE_VERSION` 是当前 语言,引擎的。 记录只在写作的引擎下绑定(L5008). 发动机 要求节点22或更新并拒绝在下方 `EngineUnavailable`,执行限制 没有 `L` 代码,因为错误目录只列出一个程序可以导致的条件. A 类 主机在引擎的工人线条中运行一个程序. 处理器要么在线条内建 从可复制的配置,或者当它是作为驱动器的活对象时,保留在主机中 连接在信件端口上的效果接合( e)`engine/bridge.ts`) (中文(简体) ).

该语言由 [`spec/cotal-lang.md`](https://npmcn.com/package/spec/cotal-lang.md) (规范 `js` 块由这个包的表面套件验证),其有线脚印由 [SPEC.md 第14节](https://npmcn.com/package/SPEC.md#14-workflow-runs-v05)。指南是 [文件/工作流程(mdx)](https://npmcn.com/package/docs/workflows.mdx)。 。 。 .

## 使用

```ts
import { validate, run, dryRun, SimHandler, Journal } from "@cotal-ai/lang";

const source = `
const builder = await spawn("builder")
const r = await turn(builder, { name: "build", deadline: "30m" })
log(r.status)
`;

validate(source);                       // throws LangErrors, every refusal with code, cause, fix

const script = { turns: { build: { status: "done" } } };
const plan = await dryRun(source, script);   // what it would do, with no agent touched

const first = await run(source, { runId: "r-1", handler: new SimHandler(script) });
// first.journal.entries() is the step journal; first.pins is what a resume must be handed back.

const again = await run(source, {
  runId: "r-1",
  pins: first.pins,
  journal: new Journal({ run: "r-1", entries: first.journal.entries() }),
  handler: new SimHandler({}),          // nothing is scripted: every step replays
});
```

`run` 通过 `EffectHandler` 你通过和记录 每个人在 `Journal`· ; 将同一日记和针接回,并恢复同一程序。 操作器在飞行中绑起 等待前的外部工作; 恢复时重放一次失败, 而待决约束 效应可以重接. 内部待决步骤 `once` 不再发送: 它打开一个控件 `holdRequestId` 并且答案成为结果. `SimHandler` 剧本翻转,问, 检查点和事件,拒绝任何没有记录的事物(L6001),因此模拟不能沉默 发明一答. 时间是一个虚拟时钟模拟的离散事件:时间效应公园 他们的觉醒时间, 并按顺序交付, 所以并行的树枝 积累自己的 会期和a `race` 在模拟下由规则本身决定(记录最少的时钟,带子) 根据声明令,而不是命令的效力。 模拟器还执行 `ask` schema shortwitch:一个无法读取的 schema 被拒绝(L4022),不符合要求的回复被消耗 `attempts` 在L4006飞机之前.

## 诉讼

`pnpm test` 在这个目录中,每个烟雾:语法,钥匙,日记,模糊的日记,针, 范围、图像、解释、燃料、干燥、实例、选项、通知-事实、迁移、语义(纯度) 对节点的片段),表面(语法表,库表,以及每个实例 参考和指南验证、符合、转换、差分、引擎和 根-切变. `smoke/mutations/*.json` 这是 `pnpm mutation-proof` 目标.

`pnpm test` 不进行类型检查而释放构件( e)`build:emit`,则 `smoke/_run.ts` 运行 21 已声明 `smoke/*.smoke.ts` 文档,每个文件在自己的进程中平行进行。 每个文件的全部输出是 按宣布的顺序打印,并打印文件 只有当它退出0时通过,并且它的输出带有非零计数且没有故障时,它才会通过. 每个文件 运行即使一个失败, 而运行然后失败。 A 类 `smoke/*.smoke.ts` 既不是文件 被宣布或排除在外,或被宣布的失踪档案被拒绝. `wait-until.smoke.ts` 实值 被故意排除:它从未是这个链条的一部分,CI作为自己的套房运行.

| 变量 | 默认 | 含义 |
| --- | --- | --- |
| `COTAL_TEST_JOBS` | `max(1, min(6, cpus - 1))` | 文件马上运行. `1` 一次开一次. |
| `COTAL_TEST_TIMEOUT_MS` | `120000` | 个人文件限制。 有关它的文件, 和它的孩子的过程, 被杀死和失败. |

二者之一的错位值都是错误 。 抓取的输出上限为每个文件32 MiB; 多于 失败的文件。 在 Linux 上,每个文件都有自己的进程组,所以中断运行时没有 孩子们在后面 在 Windows 上,进程树被杀死 `taskkill`。该路径尚未运行.

## 常见问题

### @cotal-ai/lang 是什么？

cotal-lang:受限-JS工作流程语言\. 解析器和验证器,效果界面,步骤日记,解释器,以及模拟处理器\. 这要看收押金里没有别的了\.

### 如何安装 @cotal-ai/lang？

在项目目录运行 npm install @cotal-ai/lang，或使用 pnpm add / yarn add / bun add。

### @cotal-ai/lang 支持 TypeScript 吗？

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

### @cotal-ai/lang 支持 ESM 还是 CommonJS？

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

### @cotal-ai/lang 可以商用吗？

@cotal-ai/lang 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cotal-ai/lang 的下载量有多少？

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

### @cotal-ai/lang 还在维护吗？

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

