# @adlc/fleet 中文文档

规范地址：https://npmcn.com/package/%40adlc/fleet/

版本：1\.12\.0
npm 元数据更新时间：2026-10-10T03:06:55.568Z
中文译文更新时间：2026-11-06T00:36:15.322Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40adlc/fleet
原文对照：https://npmcn.com/package/%40adlc/fleet/?lang=original
项目主页：https://github.com/voodootikigod/adlc/tree/main/packages/fleet#readme
源码仓库：https://github.com/voodootikigod/adlc

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

- 包体积（解压后）：444 kB，48 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：5 个
- 首次发布：2026-07-15T00:20:12.376Z
- 最新版本发布：2026-10-10T03:06:55.194Z
- 近 30 天下载量：8162（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

平行的,有门的ADLC门票 管弦跨越支持的代理吊带.

## 安装

```sh
npm install @adlc/fleet
```

也可以使用：`pnpm add @adlc/fleet`、`yarn add @adlc/fleet`、`bun add @adlc/fleet`

## README

# @adlc/ fleet (英语)

在ADLC上进行平行出道会. 舰队阅读了从 `.adlc/tickets.json`,每个发去一个沙箱 无头 **克劳德代码** 在一个孤立的工地上工作 管理着决定性的大门 使用截断的跨模式审查更改,并将其合并为每个运行 融合处——与 **确定性控制流动** (ADLC D0: 控制流量) 是代码,判断是模型。 没有LLM呼叫决定命令,重试,或合并.

设计合同: [`docs/specs/fleet-orchestration.md`](https://npmcn.com/package/docs/specs/fleet-orchestration.md) · 决定和威胁模式: [`docs/adr/0010-adlc-fleet-orchestration.md`](https://npmcn.com/package/docs/adr/0010-adlc-fleet-orchestration.md)。 。 。 .

## 它会做什么

-   **计划来源是 `.adlc/tickets.json` 本身** (通过) `@adlc/core`) ——不是一个新的 格式. `completed:true` 门票经过过滤(重复的不变量为 #104),但仍 满足边缘。 范围重叠的门票是系列的;一个作家持有 一个分区一次.
-   **沙盒倒置命令平面** 输入、构建和测试命令运行在 OS sandbox( 网络被拒绝、 读取/ 写入工作树、 合成) 回家来。 如果没有沙盒后端,舰队就失效了.
-   **模拟飞机** - 那个 `claude -p` 工人的经营与网络入侵 和它自己的 这样它就能发挥功能,并被包裹在 _文件系统_ 沙盒:它的 **写入** 被捆绑在票面上的工作树上 加上国家名录 声明 网络和文件系统是独立的轴; K2 仅需要 (# 395) 不同的网络。 阅读不设界限——有记录 剩余,参见安全科.
-   **决定性的预置闸门** 建造/试验, `rails-guard`一张当地票 范围检查,以及封闭式保护控制文件完整性扫描(覆盖 `.adlc/tickets.json` 信任根).
-   **阻止跨模式起诉** 每张票都必须清空 `adversarial-review` 合并前通过; 如果没有提供者, 则无法关闭 可达.
-   **一体化分支,永远不要打基础** ——成票相继合并为 `fleet/run-<runId>`;舰队最多打开一个公关到基地,从不推进.
-   **通过合并闸门自动完成** ——一经票后出闸 通过,舰队标记它 `completed:true` 综合处通过 不变 `adlc ticket complete` (单位:千美元)`planComplete` +应用) 人类将使用的道路,所以 仅附加注释及其明显证据 单公关。 《同上》 门票 门票 门票 开放).
-   **二击失败政策** 通报 `flail-detector` (故障打开).

## 使用量

```sh
fleet run --dry-run                 # preview the plan; no worktrees, no workers
fleet run --dry-run --json          # machine-readable plan
fleet run [--concurrency N] [--tickets T1,T2] [--base main] [--json]
fleet run --tickets T1 --no-pr --no-complete --max-strikes 14 --wall-clock-minutes 60 \
          --pre-strike-argv '["/abs/adlc","autopilot","quota","--json"]' --pre-strike-env '{"PATH":"/usr/bin","HOME":"/home/me"}' \
          --model-plane-read bounded --model-plane-read-only /opt/tools/rg \
          --model-plane-git mirror --model-plane-git-mirror /abs/mirror.git \
          --model-plane-egress allowlist --worker-deps /abs/worker-deps/node_modules --json
fleet status [--json]               # show the current run's per-ticket state
fleet unlock                        # release a stale run lock (guarded)
```

### 干燥烟雾(AC5)

面对这堆积案:

```sh
node packages/fleet/bin/fleet.mjs run --dry-run
```

输出 `0`,打印备妥的套件 + 首个发货批次 + 等待道具的门票, 不包括 `completed:true` 罚单,而不创造任何树`git worktree list` 原文不变).

### 现场直播——先决条件

现场直播 `fleet run` (无) `--dry-run`)要求:

1.  a 一个 **OS 沙盒后端** 有关东道主的`bwrap`编号 :`unshare` 在Linux上, `sandbox-exec` 操作员-本地 `--i-am-in-a-disposable-container` 主张整个运行已经孤立( 承诺的 repo 配置永远不会 设置此选项);
2.  页:1 **ADLC Claude 代码插件** 如此安装的会场铁钩臂 在工人的树上`ADLC_P4_ENFORCEMENT=1` + 键 `ADLC_TICKET`(三);
3.  (单位:千美元) **克劳德代码** 二进制( e)`claude`继续 `PATH`· ;
4.  (单位:千美元) **信赖 `adversarial-review`** 二进制可溶于管弦乐器 `PATH` (或被钉住) `fleet.reviewBin`) ——被阻断的检方操纵 名称与信任的路径对齐, 永远不要 `npx` 从工人的树,所以工人 无法掩盖检察官 如果无法解决,起诉即告失败 没有合并的票;
5.  `fleet.gate` 配置在 `fleet` 键 `.adlc/config.json`。 。 。 .

当沙盒的前提条件未得到满足时(失败),舰队拒绝发送 (已关闭).

## 工人(适应人员)

调度器是无意识的:它通过一个 `WorkerAdapter` 接缝( 接缝)`lib/adapters/`),因此,哪个编码代理 构建一张票是一个配置选择, 不是代码更改。 注册的适配器 : `claude-code` (违约), `codex`, (中文(简体) ), `agy` (谷歌反重力), `opencode`, (中文(简体) ), `pi`, (中文(简体) ), `cursor`每一个都是纯正的 I/O shim 以无头模式产出它的被子 **模型飞机** (网络进取+ 拥有 auth, 文件系统写有边框 – K2 + # 395 。 选择一个带有 **运营商- 本地** `--adapter` 旗帜( 默认) `claude-code`) (中文(简体) ).

每个适配器也声明 `egressHosts` - 那个 `host:port` 配对它的绳子必须 到达(模型 API 及其 OAuth 主机)。 下 `--model-plane-egress allowlist` 这些是东道方CONNECT代理许可的唯一目的地; 一个适配器,它宣布无人无法在允许列表模式下运行(无法关闭).

每个适配器也声明 `homeState` ——目录并存其被子 写入 `HOME`。该声明是模型飞机书面赠款:一个适配器 宣布什么也得不到 在工作树之外, 所以一个新的绳子失败了 而不是继承一揽子赠款。 如果绳子需要一条路 声明没有赶上, 与操作员- 本地 `--model-plane-writable <path>` (可重复);a `fleet.modelPlaneWritable` 内 由于让候选树拓宽 包含它的边界将会使它本身失效.

**牵引装置是操作员-局部的,而不是Repo配置(对抗-审查K1/A2):** 仅限 `claude-code` 安装每个工作树的许可列表, 所以要重置 `fleet.adapter`编号 :`fleet.adapterCommand` 能够悄悄地将无人照料的工人转移到一个 腰带不全 因此,选择系带(以及任何二进制的覆被)是一种 运营商信任决定——通过 `--adapter` 编号 : `--adapter-command` 编号 : `--adapter-args`· ; 一个值 `.adlc/config.json` 以警告方式被忽略.

**模型及其证书也是本地操作员** (运营-存储 第4/§10条). `fleet.model` 财务报告和审定财务报表 `fleet.modelAuthKey` 内 `.adlc/config.json` 现在 **忽略 并警告**; 使用 `--model` 财务报告和审定财务报表 `--model-auth-key`。 。 。 .

-   `model` 曾被作为"不可执行的数据"处理,这只能通过 事故: `claude-code`, (中文(简体) ), `codex`,以及 `opencode` 都悄悄地放弃了 所以 除了那个适应器什么也没有 现在,每个适配器 迫使它的模型 在命令行上,重投承诺值会让候选树选择 建造和判断它的模式.
-   `modelAuthKey` 更危险的是: 它命名了免予执行的 ONE 变量 `modelPlaneEnv`秘密剥取, 所以一个回波值选择了哪个主机密钥 输入了可编码的工人。 候选人可以提名 `ADLC_MANIFEST_KEY` 并读取签下跨模范证明的密钥. `ADLC_MANIFEST_KEY` 被附加在一个硬拒绝列表上——没有 `modelAuthKey` 打开它,连接线员都不打开.

仅 `adapterStdin` (快速运输形状,而不是供应或证书选择) 仍然从 repo 配置读取.

### 模型-平面沙盒所做的和没有关闭(# 395)

工人的许可名单包含重写 `fleet.gate` 命令 (他们来自候选树) `.adlc/config.json`和建筑商的章程 告诉工人去操作它们。 这样就可以命令普通候选密码 在模型飞机上运行.

**关闭 :** 它不能在售票树外写作。 不是本地操作员 军需登记,没有 `~/.claude/settings.json` 或者说 `~/.claude/hooks/`没有 已经安装的工具包,而不是另一个雷波的工作树。 已经不是了 _告诉_ 任何一种环境 `ADLC_*` 变量从 示范飞机环境,以及《宪章》需要什么`ADLC_TICKET`, (中文(简体) ), `ADLC_P4_ENFORCEMENT`)被明确注入.

**未关闭 :** 模型飞机 **读取** 不受限制, 和egress是开放的,所以 读取和过滤路径仍然存在。 校对:Soup 将 macOS 密钥链项保存在每个平台上 - 而且没有尝试。 {\\fn华文楷体\\fs20\\bord1\\shad1\\1cHE0E0E0\\2cH000000}跑出一隊去取回一筆你不相信的錢 在设计假设之外.

**没有后端时没有新的失败模式 .** 模型飞机重用 运行宽沙盒决定:没有主机 `bwrap`编号 :`sandbox-exec` 已经拒绝 在飞行前发送 `--i-am-in-a-disposable-container` 已声明 整个运行被控制。 没有模型飞机 唯一的选择退出.

每个适配器都停放 **默认引用** (单位:千美元)`agy --print <prompt>` 编号 : `jetski --print <prompt>` 财务报告和审定财务报表 `pi --print <prompt>` 将提示传递为 旗帜的 argv 值, 不在 stdin 上 - `codex exec`, (中文(简体) ), `opencode run`, (中文(简体) ), `cursor-agent -p`,其余则记录默认,并注明每个 适配器头. 因为驾驭CLI 进化,命令和参数是 **压倒一切** 通过本地操作员 `--adapter-command` 编号 : `--adapter-args` 国 际 旗帜(和 `--model`)——所以CLI的改变是一行的固定,一个未知的 `--adapter` 运行启动时未关闭 。 有了军需登记处 argv 覆盖被断然拒绝,因为注册人选择一个适配器 罚单和一个全球二进制不能为所有人服务。 现场直播 每个牵引装置的端到端行为应对照已安装的CLI进行核实.

## 供应——军需登记处(可选)

当操作员-本地信道登记簿存在时,它不是 `--adapter`编号 :`--model` —— 说 决定: `{adapter, model, transport}` 页:1 **每张票**,以 [`@adlc/quartermaster`](https://npmcn.com/package/%40adlc/quartermaster) 从票类和CPM 浮来. 当 `ADLC_QUARTERMASTER_REGISTRY` 设置或 `$XDG_CONFIG_HOME/adlc/quartermaster.json` 已存在; 没有, 舰队行为 完全如上所述.

订婚后就是了 **关闭失败**: 缺少、已禁用或无效的登记册 发送前中止,以及 `--adapter-command`编号 :`--adapter-args` 被拒绝 (一个全局二进制不能服务于每克适配器的选择,以及批发的 argv) 超接会丢弃强制模式). `fleet run --dry-run` 打印 已解析的座位和适配器本身的正文 `--json`。 。 。 . 席位取自分类账前科 在干流中,未安装的系统作为标准通知报告(文本和 `--json`(中文(简体) ) 和现场运行.

所审查的回购中没有任何内容参与: 树以通知被忽略, 并配置相对或内部的路径 repo 禁用加载而不是读取它。 司马和有记载 限制 : [`docs/integrations/quartermaster-registry.md`](https://npmcn.com/package/docs/integrations/quartermaster-registry.md)。 。 。 .

## 配置( E)`.adlc/config.json`(中文(简体) )

```json
{
  "fleet": {
    "gate": { "build": "npm run build --workspaces --if-present", "test": "npm test" },
    "init": "npm install",
    "adapterStdin": false,
    "concurrency": 2,
    "base": "main",
    "timeoutMinutes": 30,
    "prosecuteFailOn": "medium",
    "allowedCommands": ["npm test", "npm run build:*", "node --test *"]
  }
}
```

`fleet.reviewMaxBytes` (默认) `262144`页:1 `adversarial-review` 作为 `--max-bytes`· ; `--allow-summary-review` 从来没有通过, 因为在审查员的立足点之上 限制只进行摘要审查 放弃每一个发现——一个虚假的绿色,而不是审查.

## 编组船队——接线员-局部分机

编队的管弦乐手(问题自动驾驶, [`docs/specs/issue-autopilot-local.md`](https://npmcn.com/package/docs/specs/issue-autopilot-local.md) §14需要交出一张票,一张预算,一张配额门和一张封口 配置文件,并读取机器可读结果返回。 下面的每个把手都是 **运营商- 本地**: 仅从 argv 获得荣誉,并在 `fleet` 键 `.adlc/config.json` 被警告(`SECURITY: … operator-local … — ignored`和 被忽略了,完全一样 `fleet.adapter`编号 :`fleet.model`。没有改变舰队的 缺席时的行为.

| 旗帜 | 效果 |
| --- | --- |
| `--no-pr` | 跳过运行端的PR;整合分支留给呼叫者. |
| `--no-complete` | 跳过 `completeTicketOnIntegration` 后相接出闸后;呼叫者拥有完票. |
| `--dead-end-file <path>` | 文件的内容(fenced, 12.000-char cap)是一击的初始死板材料,因此再试可以手取前一回合的失败. |
| `--max-strikes <n>` | 出击盖,整数 1.50 (默认 2). |
| `--wall-clock-minutes <m>` | WHOLE 运行的外部截止时间: 之后没有发出新的消息, 短短的一击会杀死它的流程组( SIGTERM, 然后是 SIGKILLL 15 s), 运行记录的原因 `wall-clock`,退出 2 并保留可恢复. |
| `--charter-file <path>` | 附加给建筑商在限制区块(限制仍具有权威性)之后的快速ATER. |
| `--pre-strike-argv <json-array>` + 键 `--pre-strike-env <json-object>` | 在Everyy攻击前用一个 argv 阵列进行命令运行, 没有外壳, 并带有给定的环境( fleet 添加了任何内容 ); `ADLC_MANIFEST_KEY` 将遭拒绝; `argv[0]` 必须是绝对的。 非零出站 ——票房暂停`quota-paused`——没有 `--resume` 旗帜,不需要任何旗帜. |
| `--model-plane-read host|bounded` + 键 `--model-plane-read-only <abs,…>` | `bounded` 给 MODEL 平面 沙盒 模块的边框读取策略( 工作树 + 合成家 + 允许列表) —— 主机的固定系统根 (`/usr`, (中文(简体) ), `/lib`, (中文(简体) ), `/lib64`, (中文(简体) ), `/etc/ssl`, (中文(简体) ), `/etc/resolv.conf`, (中文(简体) ), `/etc/hosts`)总是在其中,所以每个适配器的TLS和名称解析工作;设置了私有空tmpfs的旗子 EXTENDS `/tmp`;一个FILE条目被绑定为单一文件,因此单个可执行文件无需其母目录即可被曝光. |
| `--model-plane-git mirror` + 键 `--model-plane-git-mirror <abs bare repo>` | 工人的工作树被从呼叫者提供的光镜上剪去(它只提供git数据库);工人出站后,用比较和分页取回分行回呼叫者仓库(取回分行)`fetch` 临时法官 `merge-base --is-ancestor` → `update-ref … <cutTip>` − 删除临时参考),该分行的闸口/起诉/相机运行为共享模式. 任何步骤失败 + 原因 `mirror-fetch-failed`反弹没有动过 要求数 `bounded` 读取. |
| `--model-plane-egress open|allowlist` | `allowlist` 使用 `--unshare-net` 加上unix socket上的主机侧 CONNECT 代理机,唯一允许的目标就是适配器宣布的型号主机, 连接到 `127.0.0.1` 沙盒内`HTTPS_PROXY`编号 :`HTTP_PROXY` 设定, `NO_PROXY` ) (无. |
| `--worker-deps <abs node_modules>` | 在每次罢工之前,一个普通的复制品(绝不是npm跑道)被叫客所建的依赖树打入工人的树上 `init` 不运行. |

### 这个 `--json` 结果和理由设定

`fleet run --json` 在 stdout 上打印一个文档( 人类行到 stderr ): `fleetRunId`, (中文(简体) ), `exitCode`, (中文(简体) ), `reason`, (中文(简体) ), `results`, (中文(简体) ), `strikes`, (中文(简体) ), `strikesConsumed`, (中文(简体) ), `review: { provider, verdict, revision, rounds }` (单表顶级) 运行; 总是每张票下 `tickets`有效的政策反应 (单位:千美元)`readPolicy`, (中文(简体) ), `privateTmp`, (中文(简体) ), `gitSource`, (中文(简体) ), `mirror`, (中文(简体) ), `egress`, (中文(简体) ), `egressAllowlist`, (中文(简体) ), `homeBinds`, (中文(简体) ), `writableRoots`) (中文(简体) ).

**`reason` 对呼叫者具有权威性;退出代码不变.** 每个 非零出口带一。 门票是关闭的

`quota-paused` • 妇女 `lock-held` • 妇女 `wall-clock` • 妇女 `strikes-exhausted` • 妇女 `ticket-blocked` • 妇女 `flail` • 妇女 `review-unavailable` • 妇女 `mirror-fetch-failed`

(单位:千美元)`quota-paused`编号 :`wall-clock` 是可重复的停顿, `lock-held` 是一个跳转到 稍后再试,其余为售票终点站. 运行级别失败 不是罚单结果 - `quarantined`, (中文(简体) ), `pr-open-failed`, (中文(简体) ), `preflight`, (中文(简体) ), `resume-refused`, (中文(简体) ), `dispatch-refused` - 使用同样的钥匙,但坐在外面 设置,所以闭合的enum上的呼叫键将它们视为操作错误 需要一个人类,这是正确的解读。 A 类 `dispatch-refused` 罚单是左侧的 它的打击还击: 修正沙盒政策并恢复.

## 退出代码

-   `0` ——每张发票合并(或清洁干线).
-   `1` 操作错误(不良的配置、肮脏的树、锁被扣、缺失的门, 沙盒先决条件未得到满足).
-   `2` 至少有一张罚单失败,被阻断,或者被罢工前的PAUSED 命令 / 外墙钟( 参见 `--json` `reason`) (中文(简体) ).

## ADLC 阶段

P4(平行建设)+P5(平板起诉). 舰队是指挥家 使 ADLC P4 并行性可执行; 它消耗已认证的车票 DAG 以 `merge-forecast` (D2)和每张票通过出站口.

## 核心差距

没有任何核心变化。 船队代表所有原始票 (单位:千美元)`loadTickets`, (中文(简体) ), `topoSort`, (中文(简体) ), `scopesOverlap`, (中文(简体) ), `globMatch`, (中文(简体) ), `inScope`改为: `@adlc/core` 并且不增加第三方运行时间依赖.

## 常见问题

### @adlc/fleet 是什么？

平行的,有门的ADLC门票 管弦跨越支持的代理吊带\.

### 如何安装 @adlc/fleet？

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

### @adlc/fleet 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/adlc\_\_fleet 是否存在。

### @adlc/fleet 支持 ESM 还是 CommonJS？

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

### @adlc/fleet 需要什么版本的 Node\.js？

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

### @adlc/fleet 可以商用吗？

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

### @adlc/fleet 的下载量有多少？

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

### @adlc/fleet 还在维护吗？

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

