@adlc/fleet

中文文档
1.12.0发布于 2026/10/10MITES Module构建来源已验证近 30 天下载 8162

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

中文使用文档
文档目录13 节
  1. 它会做什么
  2. 使用量
  3. 干燥烟雾(AC5)
  4. 现场直播——先决条件
  5. 工人(适应人员)
  6. 模型-平面沙盒所做的和没有关闭(# 395)
  7. 供应——军需登记处(可选)
  8. 配置( E) .adlc/config.json (中文(简体) )
  9. 编组船队——接线员-局部分机
  10. 这个 --json 结果和理由设定
  11. 退出代码
  12. ADLC 阶段
  13. 核心差距

@adlc/ fleet (英语)

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

设计合同: docs/specs/fleet-orchestration.md · 决定和威胁模式: 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 (故障打开).

使用量

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)

面对这堆积案:

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 从票类和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。 。 。 .

配置( E).adlc/config.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 §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|allowlistallowlist 使用 --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 共发布 12 个版本,首次发布于 2026/07/15;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.12.0latest2026/10/1027 天前
1.11.12026/09/091 个月前
1.11.02026/08/252 个月前
1.10.02026/08/112 个月前
1.9.02026/08/092 个月前
1.8.02026/08/082 个月前

关于 @adlc/fleet 的常见问题

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