@agent_forge/forge-linux-arm64 1.50.0 → 1.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/README.md CHANGED
@@ -51,7 +51,7 @@ Forge 在 AI 编码过程中自动插入结构化质量门禁——从任务创
51
51
  <table>
52
52
  <tr>
53
53
  <td width="50%" valign="top"><strong>🚦 任务级门禁</strong><br/>每个开发任务走 3 道门禁:实现 → 验证 → 完成,门禁之间有活动检查防止跳阶段。</td>
54
- <td width="50%" valign="top"><strong>🪝 实时 Hook 拦截</strong><br/>19 个内置 Hook,在 AI 写代码的同时自动检查质量、防止绕过(读改前置 / 文件监控 / 高危拦截)。</td>
54
+ <td width="50%" valign="top"><strong>🪝 实时 Hook 拦截</strong><br/>22 个内置 Hook,在 AI 写代码的同时自动检查质量、防止绕过(读改前置 / 文件监控 / 高危拦截)。</td>
55
55
  </tr>
56
56
  <tr>
57
57
  <td valign="top"><strong>🛡️ 安全纵深防御</strong><br/>三层防御架构:工具拦截 → 文件监控 → 自身保护。Agent 无法经 bash 绕道篡改。</td>
@@ -234,7 +234,6 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
234
234
  | `forge off [--all] [--commit]` 或 `forge on` | 按项目退出/恢复接管(Project Policy Layer):`off` 把当前项目(git 根)置为 declined——项目级 hook 全部静默、`forge init`/`FORGE_AUTO_INIT`/自动接管拒绝(退出不被任何默认路径重置);`--all` 一键全退;`--commit` 额外在仓库根写 `.forge-decline` 团队声明(committed 后对所有协作者让位,deny-wins);`on` 是 declined→managed 的唯一恢复通道(清标记与声明文件,从未 init 的项目提示先 `forge init`)。状态存注册表条目(含决策来源/时间审计),`forge status` 退出码即「是否 managed」 |
235
235
  | `forge config get/set takeover` | 用户级接管偏好(`~/.forge/config.json`):**ask(出厂默认)**每项目首次接触询问一次;**auto** 静默接管全部 git 项目(P2 之前的行为;declined 与外来 harness 让位仍生效);**off** 不接管不询问。env 覆盖:`FORGE_TAKEOVER=ask\|auto\|off`(legacy `FORGE_AUTO_INIT=1` ≡ auto);`--raw` 只输出值供脚本消费 |
236
236
  | `forge policy state` / `forge policy yield` | 接管策略快查/外来 harness 让位:`state` 打印当前目录三态(managed\|declined\|unknown,退出码恒 0,init-suggest bash 以此分流);`yield` 检测外来 harness 高置信信号(`.specify/`、`.claude/commands`、`.claude/settings.json` 含 hooks/permissions、`.cursor/rules`——单一真相源 internal/harnessdetect),命中即让位(declined, by=foreign-harness)并打印说明,`forge on` 显式覆盖 |
237
- | `forge suggest decline/status/reset` | `forge off`/`forge on` 的兼容别名:decline 等价 `forge off`(注册表 + 标记双写),reset 在 declined 时等价 `forge on`;status 查看 legacy 提示标记 |
238
237
  | `forge conventions init [--force]` | 项目规范档案(conventions-profile):机械扫描本仓库**已声明**的规范——AGENTS.md/CLAUDE.md/.github/copilot-instructions.md 等规范文件、lint/format 配置、stack 工具链命令——写入用户级档案 `~/.forge/projects/<key>/conventions/`;此后 hook 按宿主能力注入:会话开始注入 ≤15 行摘要(支持 PostCompact 的宿主压缩后重注入),写源码文件时注入规范文件指针+同目录范例(advisory 不阻断;同一份档案跨宿主共享);摘要的「提取要点」节由 agent 代码考古增补,重跑 init 保留提炼内容(`--force` 才重建骨架);规范源文件变化后指纹翻转,注入与 show 均提示重扫;task-verify 会提醒「档案声明的 lint 命令本任务未跑」(advisory,提醒与 checklog 审计行经 `FORGE_CONVENTIONS_LINT=disable` 一并静默) |
239
238
  | `forge conventions show` | 查看规范档案:stack/lint/test/build 命令、规范声明文件与 lint 配置清单、fingerprint 与过期状态(STALE=源已漂移,重跑 `forge conventions init` 刷新)、摘要全文 |
240
239
  | `forge conventions learn <rule>` | 纠正增量写回(conventions-profile):用户/审查指出规范违规时当场把该规则写进摘要提取要点节(一字不差去重、替换待提取占位、超 15 行预算警告——注入截断至 15 行,全文仍在 summary.md)——纠正离开会话上下文进持久档案,下个会话注入即生效 |
@@ -281,8 +280,14 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
281
280
  | `forge task mine [--agent <agent>] [--role <role>] [--all-projects] [--blocked] [--json]` | 列出分派给当前/指定 agent 的任务(`--all-projects` 全仓扫描按项目分组;`--blocked` 仅被依赖阻塞的,标注卡在哪环 [status, gate 进度 passed/total]) |
282
281
  | `forge task gate <gate-id>` | 验证单道任务门禁 |
283
282
  | `forge task impact --level none\|multi [--repo <key>]... [--note <说明>] [--ref <ref>]` | 声明当前任务的跨仓影响(多仓 workspace 成员的 verify 前置,单仓改动也须显式声明):`--level none` 改动限定本仓;`--level multi --repo <key>` 波及指定成员 repo(`--repo` 可重复)。默认 advisory(未声明只提醒),protocol.yml 配 `cross_repo_impact: required` 升级为 HARD stop(四段式 WHAT/WHY/HOW/REF 报错),详见 docs/design/multi-repo-workspace.md |
284
- | `forge task verify-acceptance [--ref <ref>] [--trust-foreign]` | 实跑验收标准(task start --accept 登记),记 deterministic 证据;验收命令来自 task import / .forge migrate(外来标记)时首跑须 `--trust-foreign`(人工审阅命令清单后显式受信,防外来命令串直接执行) |
283
+ | `forge task verify-acceptance [--ref <ref>] [--trust-foreign]` | 实跑验收标准(task start --accept 登记),记 deterministic 证据;验收命令来自 task import / .forge migrate(外来标记)时首跑须 `--trust-foreign`(人工审阅命令清单后显式受信,防外来命令串直接执行);登记了 held-out 保留集(`task start --heldout <file>`)时同时实跑双套件并记 gap——可见全过而保留集挂 = test-generalization gap(SpecBench 形态,`FORGE_HELDOUT=disable` 逃生留痕),task-complete 边界复跑 |
284
+ | `forge hazard halt status` / `forge hazard halt release --yes` | safe-halt 语义:hazard-guard 连续拦截 ≥3 次(自最近 confirm/release)→ 会话停机(停止自修复盲试,task gate 推进时明示);人工核查最近拦截命令后 `release --yes` 解锁(记 halt-release 审计事件,agent 不得自我解锁) |
285
+ | `forge task mirror github [--repo owner/name] [--dry-run]` | 分派任务镜像到 GitHub Issues(Forge 台账为主真相、issue 为组织可见面;offered→建 issue 打 forge:状态 label,终态→关闭;映射存 DataDir/mirror-gh.json;经 gh CLI,无 gh 明确报错)——Symphony 验证的组织面入口需求 |
286
+ | `forge compat snapshot [--out <file>]` / `forge compat report [--base <ref>] [--json]` | 可执行兼容工件(六面快照:命令树+flags / CheckName roster / 逃生舱 env / 内嵌载荷 sha256 / 序列化 schema 键 / 阻断位点计数)——golden(compat.snapshot.json)入库、PR diff 呈现;report 对比基线:破坏性变更(removed/changed)exit 2、added 提示同步文档(cargo-semver-checks 契约本地化:0=过 / 2=违规 / 1=工具故障);承诺表见 docs/design/compat-commitments.md |
287
+ | `forge config get/set compat <版本>` | 兼容基线声明(指纹分流 v1,GODEBUG go 行声明的轻量版):声明"行为按哪个版本的默认走"(v1 为声明性锚点 + 落后提醒,暂不分派行为——完整分流机制见承诺表"刻意不做");`forge status` 显示兼容基线行与落后 minor 数;遥测回读(逃生舱使用聚合)见 `forge eval dashboard` |
288
+ | `forge task watchdog [--stall 45m] [--release]` | 长时任务停滞检测(always-on 治理):从 checklog/toollog 取未完成任务的最后活动,超阈报停滞(task-stalled advisory,marker 节流每小时一条);`--release` 清停滞任务租约;顺带展示 token 熔断信号 |
285
289
  | `forge task doc-review --passed <pass\|fail> --score <N> [--round <R>] [--reviewer <id>] [--critical <发现>]` | 记录 L2 文档回检证据(输出→回检循环):按 doc-review skill 四维评审后落档(产出者不能自检);`--score` 为 0-100 总分、`--round` 轮次(≥3 轮未过升级人工确认)、`--critical` 落 Critical findings(未决阻断 complete)。task-complete 的 doc gate 消费该证据 |
290
+ | task-complete 自报一致性门禁(自动) | checklist 已勾选项里声称执行过的验证类命令(go test/pytest/cargo test 等)与 toollog 实测 Bash 集比对:测试类声称任务全程零匹配 = 虚报进度形态(arXiv 2605.29442)→ 拒绝完成;非测试类差集只留 advisory 痕;toollog 缺失(宿主遥测未接)跳过——区分"无法验证"与"验证通过";逃生(留痕)`FORGE_SELF_REPORT=disable` |
286
291
  | `forge docs lint [paths...] [--base <rev>]` | 文档产物 L1 确定性 lint(D1-D7:禁令短语/无证据结论/复述 diff/通过断言无证据/必填章节/结论枚举/篇幅);`--base` 改扫该基线以来变更的 .md。exit code:0=通过 2=硬失败。禁令清单单一真相源在 `internal/doclint`,同步渲染进 forge-quality skill |
287
292
  | `forge eval card [--render]` | 治理披露卡:Forge 占 ETCSOVG 哪四层、hook/门禁/逃生舱清单与已知盲区(缺节 BLOCKED)。评测体系:docs/design/forge-evaluation-system.md |
288
293
  | `forge eval dashboard [--dry-run] [--json]` | Track B 遥测(C4/C7):escape 率/off_churn/自举通过率(Wilson 95% CI + 误用注记;样本低于字典下限只出 INSUFFICIENT)。快照落 `~/.forge/evals/forge/snapshots/` |
@@ -294,6 +299,11 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
294
299
  | `forge eval run --manifest <file> --profile <off\|gates-only\|full> --model <m> [--repeats N] [--wallclock <d>] [--forge-ref <ref>]` | Track A 端到端基准运行(四元组 scorecard + pass^k 曲线 + 预算截断披露;`--forge-ref` 标注被测 forge 版本,四元组之一);真实执行需 `FORGE_EVAL_SMOKE=1`,否则确定性 scripted 替身 |
295
300
  | `forge eval decompose --manifest <file> --models <a,b> [--profiles off,gates-only,full] [--repeats N]` | 方差分解大体检:HV̄/MV̄ + 排名翻转数 + η²_p + 三档差值(full−off 整体贡献 / full−gates-only 注入层 / gates-only−off 纯门禁代价);结论只做区间表述 |
296
301
  | `forge eval report [--quarter 2026-Q3]` | 季度自评测报告(汇编已落盘证据;缺失如实标注,绝不补造) |
302
+ | `forge eval otel [--out <file>] [--limit N]` | checklog → OTLP/JSON 导出(OpenTelemetry 通道:审计行进企业 SIEM/APM;scope=forge.checklog versioned mapper,`--limit` 只导最新 N 条) |
303
+ | `forge eval aat [--out <file>] [--limit N]` | checklog → IETF agent-audit-trail 形状 JSONL(链式 prev_hash + trust_level L0-L3;versioned mapper,meta 头声明全部有意偏离——标准卡位,见 docs/compliance/standards-crosswalk.md) |
304
+ | `forge skills inventory [--lock\|--verify] [--json]` | AST10 对齐的 skill 清单与内容指纹:枚举 canonical + pack 树、每个 SKILL.md 的 sha256;`--lock` 钉基线(skills-inventory.lock 提交进仓),`--verify` 对照锁文件核对(漂移/未知/缺项 exit 2——OWASP AST07 "immutable pinning, hash verification" 机械落地) |
305
+ | `forge gate push [--ref <branch>] [--dry-run]` | git 推送边界门禁:merge-base...HEAD 重跑确定性 cheat-scan + 本分支未消解 BLOCKED 任务(不依赖本地 hook 是否生效——云端 agent 分支同受治理);证据快照落 DataDir/pushes/,CI 里复跑同套判定兜底;阻断 exit 2 |
306
+ | `forge gate hooks install [--uninstall]` | 安装 git pre-push 钩子(core.hooksPath=.forge/git-hooks,调 `forge gate push`;forge 不在 PATH 时 fail-open 放行)——治理随 git 走的本地接线 |
297
307
  | `forge task scope add <glob> [--ref <ref>]` | 追加计划改动文件到白名单(支持中途迭代;--ref 指定任务,不依赖活跃任务检测) |
298
308
  | `forge task scope show` | 查看声明的白名单 + 实时 scope-drift(advisory,不阻塞) |
299
309
  | `forge task override [--work-activity\|--test-coverage\|--acceptance-gate\|--skill-decisions\|--doc-gate] disable` | per-task 逃生舱:关闭指定门禁检查(如批量重构时关 read-before-edit);使用落 checklog 审计。验证类(test-coverage/acceptance-gate/skill-decisions/doc-gate)evidence 强度 cap 到 Weak(重证据任务按证据缩放豁免);work-activity 是节奏门禁,只审计不降强度。doc-gate 的放行须在 doc-review 轮次上限后经人工确认再走 |
@@ -376,7 +386,6 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
376
386
  | `forge skills adapters` | 部署 skill-routing adapter(pi/claude/cursor/routes.json) |
377
387
  | `forge skills usage` | 使用度量分析(热门 skill + undertrigger 候选) |
378
388
  | `forge skills usage --by-keyword` | per-keyword 触发分析:命中/加载/抑制切片(v2 Meta 的 matched_keyword)+ 死关键词检测(声明未命中;窗口无 v2 证据条目时自动停用并说明)。加载列带宿主偏差标注(注入型宿主无工具事件信号) |
379
- | `forge skills mine [--skill X]` | 生产触发记录 → golden case 草稿挖矿(precision 侧):engaged=true 正例 / engaged=false near-miss 负例候选,prompt_hash 跨 session 去重;需 opt-in 摘录(`FORGE_TRIGGER_EXCERPT=1`);草稿永不自动进 golden(人工改写后策展) |
380
389
  | `forge skills effectiveness` | 技能命中×任务成效关联(命中数/task数/avg分/弱占比,agent-neutral) |
381
390
  | `forge skills --dir <path>` | eval 命令族公共 flag:指定 eval 数据目录(默认 `~/.forge/evals`,`FORGE_EVAL_DIR` 可覆盖;首次默认解析自动从旧 `~/.pi/research/skill-eval` 一次性迁移。仓库内 `evals/` 或 CI 用) |
382
391
  | `forge skills eval-gen [--save] [--cases-only]` | 生成 eval 清单;`--save`/`--cases-only` 额外落结构化 case 集(回归闭环基准) |
@@ -389,7 +398,6 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
389
398
  | `forge skills mutex-gen` | 生成跨 skill 互斥 case 集(从 description SKIP 段的(用 X)让渡边派生:B 域 prompt 必须路由到 B、不得路由回声明让渡的 A;落盘 mutex/cases.json) |
390
399
  | `forge skills mutex-record --from <file/->` | 回填一次互斥集 run(actual==Positive 才 pass;`--agent-model`/`--forge-version` 盖章防跨模型/版本假回归) |
391
400
  | `forge skills mutex-report [--gate] [--json]` | 互斥集混淆矩阵(actual==Negative 为头号混淆行;`--gate` 任一混淆即 BLOCKED(stderr)+exit 4) |
392
- | `forge skills analyze [--json]` | 弱点挖掘报告(只读):低分维度聚簇/验证盲区率/从未触发 skill/低成效 skill + 数据 caveat,供人选题 |
393
401
  | `forge skills decide [<skill>] --diagnosis ... --prediction <p>` | 记录 skill 决策四元组(skill 名可用位置参数或 --skill;在带 skills/ 树的仓库内默认写仓库 canonical 而非 embed 缓存);`--prediction` 声明可检验预测(哪个可观测信号应改善),供验证闭环回扣 |
394
402
  | `forge skills verify --skill X --decision <id> --result <r>` | 回填决策验证结果(预测→验证闭环第二步;`--at` 指定时间、`--history`/`--history-json` 查全量可证伪台账) |
395
403
  | `forge skills revert --skill X --decision <id> [--edit] [--dry-run]` | Scoped revert:按 decisions.md 的 CommitHash 撤销某条决策关联的 commit(决策闭环的撤销臂) |
@@ -404,10 +412,9 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
404
412
  |------|------|
405
413
  | `forge health [--json]` | 项目级质量趋势——聚合所有任务结论(分数走势/证据盲区率/复发低分维度,task→project 粒度联动) |
406
414
  | `forge doctor [--json]` | 跨 agent 环境一致性审计(只读)——扫 9 个 agent host 的 forge hook 接线、解析各 host hook 实际调用的 forge 二进制并对照版本(ok/drift/nover/missing 四态),并列出 PATH 上全部 forge 可执行文件(多个并存 = 游离 exe/shim 抢路,PATHEXT 事故形状);并审计 skills 分发态(canonical vs 全局各目标,missing/drift 附修复命令——canonical 新增 skill 后未重装的目标缺失即在此暴露);copilot 无稳定配置路径约定,刻意不在列 |
407
- | `forge trace <task-ref>` | 查看任务的完整质量事件时间线(checklog + toollog + token |
415
+ | `forge trace <task-ref> [--window <chars>]` | 查看任务的完整质量事件时间线(checklog + toollog + token);`--window` 输出分段监控窗口(每窗 ≤ 预算字符、头部周期性守卫重注入——下游 LLM judge/取证按窗取输入,禁止全量轨迹塞上下文,Classifier Context Rot 缓解) |
408
416
  | `forge dashboard [--port <n>] [--no-open]` | 本地全局质量看板(Pulse 面板)——在任意目录运行都聚合 `~/.forge/projects.json` 登记的全部项目(`forge init` 自登记),渲染事件流(任务/gate/skill 触发/结论)、任务评分与证据链、skills 聚合(localhost 只读,自动开浏览器,Ctrl+C 退出,面板内按项目过滤);项目目录被移走/删除后注册表条目自动淡出(读时惰性精简),不留幽灵路径 |
409
417
  | `forge sync [--force]` | 同步 forge 资产到当前二进制版本(用户级 hooks/指令/skill 重生成 + 存量项目级残留收敛;注意:名字易误读——跨机器迁移项目数据用 `forge project export/import`,与本命令无关) |
410
- | `forge clone check` | 检测文件代码克隆 |
411
418
  | `forge plugin pack [--out <dir>]` | 生成多 host plugin pack(.claude-plugin/.cursor-plugin marketplace + plugins/\<name\>/ 树:claude manifest + reasonix native manifest + 每 host 安装 README),让各 agent 一键 `plugin install forge` 跨工具接线(薄 manifest + 共享内容,单仓即 marketplace) |
412
419
  | `forge plugin status` | 报告 forge plugin 是否在 user-level 已装(exit 0=已装,非零=未装;供 init-suggest hook / 脚本检测) |
413
420
  | `forge plugin dedupe [dir] [--keep-empty]` | plugin 已装时清理 project-level 重复 hooks + 旧项目 .mcp.json forge server 残留,并清理 user-level `settings.local.json` 的重复 forge hooks;幂等 no-op;init-suggest SessionStart 自动调用(传 `--keep-empty` 保留项目 `settings.local.json` 为 `{}`);user-level 始终保留文件壳(绝不删用户全局配置);手动不传则项目级清完删空文件 |
package/bin/forge CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent_forge/forge-linux-arm64",
3
- "version": "1.50.0",
3
+ "version": "1.51.0",
4
4
  "description": "Forge native binary for linux-arm64. Auto-installed via optionalDependencies of @agent_forge/forge; do not depend on directly.",
5
5
  "os": [
6
6
  "linux"