# @foldspace\_npm/harness 中文文档

规范地址：https://npmcn.com/package/%40foldspace_npm/harness/

版本：0\.1\.42
npm 元数据更新时间：2026-11-09T11:01:05.146Z
中文译文更新时间：2026-11-15T04:35:20.048Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40foldspace_npm/harness
原文对照：https://npmcn.com/package/%40foldspace_npm/harness/?lang=original

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

- 包体积（解压后）：1.4 MB，232 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：3 个
- 首次发布：2026-08-31T15:41:15.391Z
- 最新版本发布：2026-11-09T11:01:04.961Z
- 近 30 天下载量：2284（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：43（近 12 个月 43 个）

## 中文简介

构建并校验便携式"Foldspace"动作文物与活应用.

## 安装

```sh
npm install @foldspace_npm/harness
```

也可以使用：`pnpm add @foldspace_npm/harness`、`yarn add @foldspace_npm/harness`、`bun add @foldspace_npm/harness`

## README

# @ troldspace npm/ harness (英语)

构建便携 `dist/index.js` 行动文物 并验证它与现场 应用.

**这个包是两个架构中相同的部分.** 所有东西 其他关于建筑者如何运行,他们之间是不同的.

* * *

## 两个建筑

|  | **A-当地** _(今天)_ | **B-远程** _(设计,未建造)_ |
| --- | --- | --- |
| 建筑的运行 | 人类电脑上的克洛德密码 | GCP中的克洛德特工SDK |
| 谁的浏览器 | 一个孤立的Chrome 带发射 | 人类 **拥有** 颜色 |
| 密码如何到达页面 | 利用社区发展方案的准备工作 | 建筑扩展器装入云端文物 |
| 先决条件 | Claude Code, 客户端回波, 节点, 一个孤立的Chrome简介 | 已安装的扩展 |
| 会话和饼干 | 在一个配置图中,绳子可以创建 | 人类自己,未受伤害 |
| 代码和历史 | 人类电脑上的重播 | 托管环境中的工作空间 |

"出口来回"将一栋建筑从B移动到A—— **它只是一个副本,不是 重写时 `agent/` 两者相同.** 保持同样的是 限制此软件包的存在以保护 .

### 真正共享的东西

-   `agent/actions/*` 财务报告和审定财务报表 `agent/api/*` - 处理器是 `fetch` 加号 `runTask`, (中文(简体) ), 没有更多的。 在一个音轨上构建的动作运行在另一个音轨上没有修改.
-   `agent/utils.ts` 配置和再出口 `@foldspace_npm/harness/runtime`
-   `foldspace build` ——兴建 `dist/index.js`。在一个代码项目中,它首先使 `agent/runtime/` 匹配此套接字的运行时间( 从未将更新的运行时间复制回滚; 版本在 `src/runtime/VERSION`) 及其所写的每个文件的名称
-   `foldspace deploy` (Foldspace - 内部) - 上传 `dist/index.js` 改为 `agent/actions/<env>/<productId>/<agentApiName>`
-   固定装置和试验
-   **动词界面** 下级

### 不同之处——只有运输

| 动词 | A (社区发展方案) | B (电话分机) |
| --- | --- | --- |
| `loadBundle` | `addScriptToEvaluateOnNewDocument` | `<script src>` 在已部署的 CDN 路径中 |
| `evaluate` | `Runtime.evaluate` | 内容标记消息 |
| `screenshot` | `Page.captureScreenshot` | `tabs.captureVisibleTab` |
| `relaxCSP` | `Page.setBypassCSP` | `declarativeNetRequest` 标题规则 |
| `navigate` | `Page.navigate` | `tabs.update` |

详细情况: [`src/transports/README.md`](https://npmcn.com/package/%40foldspace_npm/harness/src/transports/README.md)。 。 。 .

### 为什么一个包而不是两个

分割 `harness-local` 财务报告和审定财务报表 `harness-remote` 叉头 `build` 财务报告和审定财务报表 `deploy` - 那个 精确失败 此软件包被创建为结束 。 而动词界面只停留 诚实,而两个执行 坐在后面; 分开它们和"同样 动作以两种模式运行"悄悄地停止了真实性.

主机环境使用相同的动作源并构建合同,但当地 `inject` 财务报告和审定财务报表 `attach` 仅保留 CDP 命令。 绳子不会产生 客户申请扩展.

* * *

## 使用

### 发现CLI

可读帮助按工作流程分类:

```bash
foldspace help
foldspace help attach
```

编码员可以检查同一版本的指令和能力合同:

```bash
foldspace help --json
foldspace help attach --json
```

安装 `harness` 二进制是用于 `foldspace`。 。 。 .

JSON 描述当前选项,先决条件,副作用,风险, 和下一步。 它没有声称未来托管环境 已实施能力执法.

### 创建工程

从已安装的模板创建已配置的动作项目 拉带版本。 当 stdin 是一个终端时会提示缺少值 :

```bash
npx --yes @foldspace_npm/harness init
```

非交互式/ CI 形式 :

```bash
npx --yes @foldspace_npm/harness init foldspace-agent \
  --product-id <product-id> \
  --agent-key my-agent \
  --app-domain app.example.com \
  --name "My Agent"
```

开发过程中直接从吊带检查中运行时 :

```bash
node bin/cli.mjs init ../foldspace-agent \
  --product-id <product-id> \
  --agent-key my-agent \
  --app-domain app.example.com
```

代理密钥是代理工作室显示的值, 例如 `my-agent`这是 而不是侧车目录名称 . `--agent-api-name` 仍为已贬值的别名 页:1 `--agent-key`。 。 。 . `--domain` 仍为 `--app-domain`。 。 。 . `--name` 可选和默认为目标目录 名称( e)`foldspace-agent` 除非您通过目录)。 产品标识必须是 赤裸的身份证,而不是 SDK 密钥(以 `EU-`时 (b) 建立区域网络。 app域名可能是主机名或HTTP(S) URL,没有端口或 路径.

`--region us|eu` (默认) `us`)是账户所在的Foldspace区域. 写给 `foldspace.dev.json` 作为 `region`并选择SDK 项目负载( u)`sdkUrl`:每个区域都有自己的建设,指出这一点 区域服务器。 没有的项目 `region` 是美国。 每个区域的价值 内 `src/region.mjs`。 。 。 .

为了安全起见, `init` 设置新文件夹, 或填入一个只持有 系统或编辑器放在那里`.DS_Store`, (中文(简体) ), `.localized`, (中文(简体) ), `Icon\r`, (中文(简体) ), `._*`, (中文(简体) ), `Thumbs.db`, (中文(简体) ), `desktop.ini`, (中文(简体) ), `.mcp.json`文件夹 `.git/`, (中文(简体) ), `.vscode/`, (中文(简体) ), `.cursor/`, (中文(简体) ), `.idea/`,以及 `.claude/` 无 `settings.json`) (中文(简体) ). 这个 留下他们现在的样子,拒绝其他任何东西,包括现有的 Foldspace项目. 它从不填充主目录或其桌面、文档 或下载,磁盘的根,或 Claude 代码桌面的文件夹 会话开始于无文件夹( 下) `scratch-workspaces`),或 Codex 文件夹 用于没有项目的聊天( t)`~/Documents/Codex`每个聊天的文件夹都在里面, 即便它们空了, 它从来不覆盖一个文件,也不会初始化 Git. 在TTY可以提供 `npm install --ignore-scripts` 经过脚手架。 创建后:

```bash
cd foldspace-agent
npm install --ignore-scripts   # if you skipped the install prompt
# before the first build, CLAUDE.md step 5: a code project's agent/ replaces the scaffold's
npm run build
npm run inject   # the human signs in in that window
npx foldspace observe wait-login
npx foldspace attach --daemon
```

有意生成的 npm 脚本仍然是正常的项目界面; `foldspace init` 是一次性项目创建命令.

已生成 `CLAUDE.md` 导入平台指令 `@foldspace_npm/harness` 而不是复制它们。 现有项目可以切换 到该导入 `foldspace upgrade --refresh-instructions`。 。 。 .

### 保持绳索的通畅

租户项目 `@foldspace_npm/harness` 版本。 出版情况a 新的软件包不会移动它们:每次会话检查和出错。 几个 建造者可以工作在一剂上,因此在一行内(0.1.x到更新的0.1.y, `update.autoUpgrade`编码代理在不问的情况下升级,并在 一行;跨越一行(0.1到0.2)它先问人.

```bash
npx --yes @foldspace_npm/harness@latest upgrade --check
foldspace upgrade --yes   # within the line: no question; across a line: after the human agrees
```

`--check` (以及非互动性) `upgrade` 没有 `--yes`)从未安装. `--yes` 写入新准确版本并运行 `npm install --ignore-scripts`。 。 。 . 后期重建;那没有发表.

`foldspace build` 财务报告和审定财务报表 `foldspace attach` 在开始前运行相同的检查 (单位:千美元)`attach --status` 财务报告和审定财务报表 `--stop` 不许). 后面的项目得到一行 继续 一个项目在一个 **撤销** 拒绝版本( 下) 以运行并打印原因。 人类一旦衰落 就要继续发展下去 升级 :

```bash
FOLDSPACE_SKIP_UPDATE_CHECK=1 npm run build
```

这样,支票就完全关闭了;它不会修复被撤回的版本.

### 跟紧保存的代码

通过一个代码工程,几个构建者可以保存到一个代理. `foldspace sync` 保存文件夹 `agent/` 最新:它从未到达过Foldspace本身 - 即 编码代理用 Foldspace 工具读取已保存的代码,并通过 头部读取.

```bash
npx foldspace sync check --develop <sha> [--line <sha>]          # what to pull, and where to write it
npx foldspace sync apply                                         # merge it into agent/
npx foldspace sync saved --head <commit_sha> --paths <a,b>       # after a save
```

`--line` 是头 `foldspace/<Agent Key>`代码 项目的指令保存到它存在时 . `apply` 保存副本 `agent/` 内 `.foldspace-dev/agent-kept/<time>/` 按文件合并文件 对比文件夹上次显示的内容( 插入) `.foldspace-dev/saved-code/`(单位:千美元) 文件只更改了一方, 文件都更改了 保存的版本并列于下 `conflicts`保存和出版 不变:它们遵循代码项目的指示.

### 撤销释放(维护者)

当一个已出版的版本被严重打破 以至于没有人可以继续 把它收回来 `npm deprecate`登记册是被撤回的清单 版本,所以已经安装在其中的工程在不 安装任何新的。 只有拥有者 `@foldspace_npm/harness` (npm 罐头) 运行它.

1.  **先发布定点.** 如果撤回的版本也是 `latest`,则 消息告诉用户升级到自己被撤回的版本.
    
2.  **撤销已断开的版本**,有一个信息说 什么是错的 移动到哪个版本 。 那个消息正是用户和编码 替他们工作的特工 看什么时候 `build` 或者说 `attach` 拒绝运行 :
    
    ```bash
    npm deprecate @foldspace_npm/harness@0.1.14 "attach loads the wrong bundle; upgrade to 0.1.15"
    ```
    
    范围也起作用 : `npm deprecate "@foldspace_npm/harness@<0.1.15" "…"`。 。 。 .
    
3.  **检查它花了:**
    
    ```bash
    npm view @foldspace_npm/harness@0.1.14 deprecated
    ```
    

要撤消撤回, 请使用空信件 :

```bash
npm deprecate @foldspace_npm/harness@0.1.14 ""
```

**这不是瞬间 `build` 财务报告和审定财务报表 `attach`。 。 。 .** 他们用登记员的答案 缓存12小时 `.foldspace-dev/harness-update.json`。 。 。 . `foldspace help --json` (手册首先读出)和 `foldspace upgrade` 询问登记处 每次并刷新缓存, 所以提取到一个工程的下一个 12小时之内开始上课 它只到达项目在一个 带有此检查的被带版本 .

### 船前的林特代理密码

`foldspace build` 运行 `foldspace lint` 先说 跳过捆绑错误; 警告 打印并仍在生产 `dist/index.js`。 。 。 .

```bash
foldspace lint
foldspace lint --json
```

v1 旗帜 :

-   **错误** `no-static-agent-prompt` - 说吧 `execute`一张卡片 `callback` 或编号 `readyState` 传递代理指令( e)`directive`,“告诉用户”,......)
-   **错误** `no-runtask-prompt` —— 说 `runTask({ data: { prompt } })` 键; 客户 API 字段命名 `prompt` 允许
-   **错误** `card-contract` - 说吧 `awaitUserInput: true` 一张取景卡(其 `renderComponent` 或者说 `render` 使用无 `callback`, (中文(简体) ), `cancel` 或者说 `readyState`:聊天面板忽略了它,但在无头模式下,代理等待一个从未到来的回调
-   **错误** `no-test-mode-in-bundle` - 说吧 `armAllInstances` 用于任何地方 `agent/` (称为,或移交以后称为),或 `setTestMode(...)` 除了字面上的东西 `false`中的运行时间复制件 `agent/runtime/` 不被拒绝 `setTestMode` 内部 `armAllInstances`
-   **错误** `no-fixed-customer-address` - 对每个客户都有子域的产品(`PER_CUSTOMER_SUBDOMAIN` 内 `agent/constants.ts`),一个客户的地址在 `API_BASE` 或任何地点 `agent/`;虽然这个地址尚未确定,但其第一部分看起来像客户名的地址(`acme.` - 没有 `app.`, (中文(简体) ), `eu1.`, (中文(简体) ), `reports.`(中文(简体) )
-   **错误** `token-stays-home` - 用户的签名代号(`getAuthToken`,一个会话名存储密钥, `document.cookie`,然后通过变量和帮助函数)返回 `execute` 或一张卡片,交给Foldspace,登录,再存储,或发送给不是产品后端的主机
-   **错误** `no-secrets` - API 密钥、JWT、无记名符号、饼干价值、秘密名称的字符串, `.har` 俘虏、储存场和 `.env` 项目中任何地方的文件( 不) `node_modules/`, (中文(简体) ), `dist/`, (中文(简体) ), `.foldspace-dev/`, (中文(简体) ), `agent/runtime/`(中文(简体) )
-   **警告** `known-hosts-only` - 说吧 `fetch`, (中文(简体) ), `sendBeacon`, (中文(简体) ), `WebSocket`, (中文(简体) ), `EventSource`, (中文(简体) ), `XMLHttpRequest`, (中文(简体) ), `publicFetch` 或者说 `import()` 写着一个地址的主人既不是Foldspace的(`*.foldspace.ai`),产品'(`foldspace.dev.json` 主持人, `API_BASE`,该应用程序的自有域名) 或写入 `agent/constants.ts`
-   **警告** `card-contract` - 任何其他情况 `awaitUserInput` 在一张取景卡上, `awaitUserInput` 在输入卡(不需要)上,该卡宣布 `callback`, (中文(简体) ), `cancel` 或者说 `readyState` 而不使用其中任何一种(SDK视其为取景卡),或 `renderComponent` sDK不能读取(所传递或别名的对象, `...rest`, (中文(简体) ), `arguments`: 代理等待,直到它打电话 `readyState`, (中文(简体) ), `callback` 或者说 `cancel`,所以一个风景卡 呼叫他们中没有一个从来没有得到答复
-   **警告** `no-emoji` - 处理器中的情绪或 `agent/views` 字符串字节
-   **警告** `registry-integrity` 重复的密钥, `{ execute }` 未注册, 缺少注册值 `execute`

将动作指令放入代理工作室或使用"Foldspace"工具. `foldspace lint` 无法看到副本.

### 运行时间助手

进口自 `agent/utils.ts`,用于配置和再出口 `@foldspace_npm/harness/runtime`。该代码被捆绑到 `dist/index.js` 财务报告和审定财务报表 运行在客户页面中——它不是一个CLI命令.

`API_BASE` 财务报告和审定财务报表 `AUTH_SOURCE` 印章为空。 从抓获的XHR中填充,而不是 猜对了 对于不是"熊"的认证,请遵循 `recipes/swap-the-login-method/README.md`: 对于自定义标题, 复制其 `agent/utils.ts` 结束 `agent/utils.ts`; 对于没有符号的饼干,它的 `variants/utils.cookies.ts`。 。 。 .

### 选择附件模式

-   **交换( 默认 ) :** 页面已使用配置的产品和代理.
-   **靴子夹( F)`--bootstrap`:** 页面没有Foldspace SDK.
-   **替换( A)`--replace`:** 页面嵌入不同的产品或代理,或 拥有一个没有配置代理的 SDK .

使用 `foldspace help attach` 用于模式要求、效果和安全选项. 编码代理运行 `foldspace attach --daemon` 所以这个工具 返回后键 `[lifecycle] inspect_registration:…`。前景附件遗迹 监视终端的默认值. `attach --status` 财务报告和审定财务报表 `attach --stop` 检查并拆除一个守护进程。 看顾客的应用软件 `foldspace observe`:它读取测试窗口,只读,同时附加运行.

### 通过代理验证动作

`foldspace attach` 不直接援引动作处理器。 它装入当地 文物,验证所捕获的本地登记册与配置的 SDK 匹配 代理 - 包括一个空的注册 - 然后观察动作呼叫时 你锻炼正常的特工经验。 命名动作不需要 随附.

`npx foldspace ask "<question>" --retry 2` 将问题输入代理 面板并报告回复、卡片文本和截图,以及-同时附上 运行 - 是否执行和渲染运行.

动作输出显示 SDK 的动作呼吁和当地 `execute`编号 :`render` 阶段 :

```text
[actions] sdk:action show_account_360 executed
[actions] local-handler:execute show_account_360 succeeded 412ms
[actions] local-handler:render show_account_360 succeeded 18ms
```

只记录动作名称、参数密钥、状态和持续时间; 处理器 参数值、结果和错误消息不是。 在拆分时, 重复页 总结了失败和有限度的行动观察。 观察员和 诊断是用绳子注射的 所以 `dist/index.js` 未重写.

### 检查已公布的代码

之后 `deploy` 工具 - 不 `foldspace deploy`,哪个 仅供 Foldspace 工作人员使用 - 发布代码项目到 dev(或与 人类是的,生产,检查它在同一测试窗口。 这需要一个 自动加载此代理的站点: 后 `attach --bootstrap` 或者说 `--replace` 还没有什么可查的.

```bash
npx foldspace attach --stop          # while attach runs the page serves your local build
npx foldspace published dev          # this page's agent now loads the published dev code
npx foldspace ask "<the question>" --retry 2
npx foldspace attach --daemon        # back to your local build before you build anything else
```

`published` 附加运行时拒绝 。 也拒绝,除非这页是自己的 Foldspace 代理是这个项目的代理 - 相同的产品和代理密钥作为 `foldspace.dev.json`,检查了附加检查的方式。 只改变这个 通过SDK的代理 `setConfiguration({ enableDebugLogs: true, remoteActionsSettings: { enabled: true, environment: "DEV" | "PROD" } })`页:1 重新装入将页面放回代理正常装入的内容 。 当代码加载时, sDK保持任何处理器 代理已经有一个新的相同的 名称,所以一旦公布的代码被装入,它的处理器就设置在 页面用于它定义的每个动作;页面保留它自己的处理器用于 休养. 一个特工用一个版本的密码 或装入密码 拒绝 : 窗口不会显示最后公布的内容 . 没有附加物, `ask` 仍然报告答复,卡片文本和a 截图; `handler.execute` 财务报告和审定财务报表 `handler.render` 改为"没有跟踪到这里" (公布代码)".

### 制作一个短视频来分享

`npx foldspace record` 从 `video/scenes.json`:开卡满足产品的代理,然后每张 问题在测试窗口中询问,在新对话中键入,使用 标题一经解答 - Foldspace 特性显示为丸 问,还有一条关于用户得到什么的大线, 它的回报突出. 大约40 s,在Foldspace的颜色中带有官方标志: `video/<product>-<date>.mp4` 还有海报 它用Chrome自己的屏幕和编码记录在隐藏的谷歌中 Chrome - 没有ffmpeg,没有屏幕记录权限,没有上传. 这个 视频显示来自登录账户的真实数据;共享是人类的 电话,和 `video/.gitignore` 保持它关闭。 这个 `share-a-video` 技术, 写入每个项目的 `.claude/skills/`,是怎样的。 它运行一个 几分钟,半途而废,它把窗户放回原样.

### 添加到已有工程中

```bash
npm i -D @foldspace_npm/harness
```

```json
{ "scripts": {
    "dev":    "foldspace build --watch",
    "build":  "foldspace build",
    "inject": "foldspace inject",
    "attach": "foldspace attach",
    "attach:daemon": "foldspace attach --daemon"
} }
```

每个命令解决 **消费** 重击.. `process.cwd()`,或 `FOLDSPACE_PROJECT_DIR` 所以主机的构建者可以将其指向工作空间 控制系统。 配置来自消费者 `foldspace.dev.json`。 。 。 .

`foldspace deploy` 是Foldspace-Internal:它写给Foldspace自己的存储器, 任何客户都无法写信 编码代理从不运行或提供. 与一个 代码工程,一个构建会话会用 Foldspace 发布代理代码 工具代替: `repo_write` 拯救它,还有 `deploy` 工具发布 - to 说完后 只能用人类的"是"来制作 "行"而后所言"说. 没有代码项目 佛德太空队和人类一起行动.

* * *

## 为什么这个软件包存在

`scripts/` 曾经被复制到每个客户端 repo, 和复制叉。 以 2026-08-25 (中文(简体) ) `client-template` 持有一个固定和一个客户 repo 持有另外四个, 财务报告和审定财务报表 **也没有全部五个**数字 :

| 修补 | 为什么这很重要 |
| --- | --- |
| SDK 负载护卫 + 重试 | 在没有的应用程序上 `document.body` 在文档启动时, 附加投出; 旧的警卫测试了分贝, 所以没有再试过, 代理从未默默地加载过 |
| 自动接通的工人释放 | Auto-Attach 暂停每个工人,直到附带的客户发布它——全程的电源冻结了应用程序自己的工人 |
| `agentIds` 计数 | `agent({apiName})` 返回 OverLAY 手柄; 将手柄装入嵌入式代理机上, 使真实的对话未标记 |
| `--test-mode` (默认关闭) | 测试模式是无条件武装的, 隐藏了初始设置需要看到的内容; 现在它正在选择使用 |
| 诚实的警徽 | 它声称: `TEST MODE` 测试模式是否已经打开 |

另外两个变化来自包装: **已注射** 相当 而不是从已删除的dev服务器获取的 `express` 财务报告和审定财务报表 `concurrently`,95 (中文(简体) ) 软件包,是驱动无法到达 制造机器——和 `inject` 现在记录端口 `attach` 读取,因为 他们以前不同意建筑.

## 常见问题

### @foldspace\_npm/harness 是什么？

构建并校验便携式"Foldspace"动作文物与活应用\.

### 如何安装 @foldspace\_npm/harness？

在项目目录运行 npm install @foldspace\_npm/harness，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 harness、foldspace，可以用 npx harness 直接运行。

### @foldspace\_npm/harness 支持 TypeScript 吗？

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

### @foldspace\_npm/harness 支持 ESM 还是 CommonJS？

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

### @foldspace\_npm/harness 需要什么版本的 Node\.js？

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

### @foldspace\_npm/harness 可以商用吗？

@foldspace\_npm/harness 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @foldspace\_npm/harness 的下载量有多少？

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

### @foldspace\_npm/harness 还在维护吗？

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

