@agent_forge/forge-darwin-arm64 1.47.0 → 1.48.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 +7 -0
- package/bin/forge +0 -0
- package/package.json +1 -1
package/bin/README.md
CHANGED
|
@@ -238,6 +238,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
238
238
|
| `forge uninstall [--restore]` | 一键反装:剥除全部用户级 hooks(claude/codex/cursor/windsurf/opencode/kimi/reasonix/cline/codebuddy/zcode;dsh 无用户级 hook 文件可剥——其 translator 是刻意 no-op,卸载即移除 plugin)+ 用户级指令段(CLAUDE.md/AGENTS.md/global_rules.md)+ forge-quality skill + 清 npm global `@agent_forge/forge` + 删 init-suggest 标记(默认 `~/.forge/.init-suggested/`,设 `FORGE_DATA_HOME` 时落该根下);`--restore` 把用户级文件回滚到 forge 修改前字节(备份在 `~/.forge/backups/`);plugin 卸载须在 agent CLI 内交互运行(不可脚本化) |
|
|
239
239
|
| `forge migrate [--dry-run] [--force]` | 把旧 `.forge/` runtime state(tasks/gates/checklog/toollog/act/sessions/quarantine/active-task-ref 等)迁到用户级 DataDir(`~/.forge/projects/<key>/`)——升级到 runtime state 外迁版本后的迁移路径;未改过的 `.forge/protocol.yml` 由 autoSync 自动迁 DataDir,用户改过的保留为团队共享覆盖层;迁移的 task 文件落地即剥离外来门禁信号(review/验收/评分/完成/逃生舱/generic 须本机重挣,验收命令带外来标记);幂等,`--dry-run` 预览,`--force` 覆盖 DataDir 已有同名 |
|
|
240
240
|
| `forge registry prune` | 精简全局注册表 `~/.forge/projects.json`——移除项目目录已不存在的死路径与重复条目(项目移走/删除/测试残留),原子写回。registry.List 读时惰性精简但只在 `forge dashboard` 启动时触发(启 web 阻塞),本命令给不启 web 的主动清理入口 |
|
|
241
|
+
| `forge registry gc [--prune]` | 回收孤儿项目数据目录(`~/.forge/projects/<key>/` 下不在注册表内的目录,测试泄漏/项目注销残留的无界增长收口):默认 dry-run 只报告;`--prune` 执行——空目录树删除,最新文件超过 14 天的非空目录移入 `~/.forge/backups/gc-<时间戳>/`(移动而非删除,可恢复),14 天内有活动的未登记项目数据与已登记项目永不触碰 |
|
|
241
242
|
| `forge registry audit [--json]` | 只读一致性审计:key-drift(注册表 key ≠ 当前派生 key 且旧数据目录有载荷,提示 `forge project adopt` 迁移)/ orphan-datadir(数据目录有载荷但注册表无条目,备份壳除外)/ id-collision(两个路径派生同一 key——复制粘贴共享 `.forge-project-id` 的检出器)/ invalid-id(ID 文件格式非法,Key() fail-open 回落的唯一暴露面) |
|
|
242
243
|
| `forge registry rekey --from <key> --to <key> [--dry-run]` | 把 from key 的项目数据目录并入 to key(修复身份分裂的存量数据;合并语义与 project import 共享 datamerge) |
|
|
243
244
|
| `forge project adopt [--dry-run] [--regenerate]` | 采纳 repo-born 项目 ID:在主 worktree 根生成 `.forge-project-id`(`fpid_<32hex>`,建议 commit 进 git),并把本机数据从路径 key 迁到 ID key(先迁数据再翻身份,复用 rekey 合并语义)+ 注册表同步。另一台机器 `git pull` 拿到 ID 后跑一次 adopt 即对齐——两台机器对同一 clone 推导同一 key,跨机器同步免重映射;`--regenerate` 给共享/污染 ID 换新(其他机器需重跑 adopt 处理 key 不匹配) |
|
|
@@ -267,6 +268,11 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
267
268
|
| 命令 | 说明 |
|
|
268
269
|
|------|------|
|
|
269
270
|
| `forge task start --ref <type/desc> --branch` | 创建任务(自动创建分支);`--depends-on <ref>` 声明上游依赖(task-verify/task-complete 在上游交付前阻断),支持 `<key>:<ref>` 跨仓依赖——key 须为本 repo 所属 workspace 的成员(`forge workspace add`),缺失目标按保守 pending 处理 |
|
|
271
|
+
| `forge next [--json]` | 单命令引导:从 git/任务状态推导**恰好一条**下一步命令+理由(无任务有脏树→task start/wild 申报;门禁链→下一步命令:implement→验收实跑→verify→review pass→complete 门→complete)。agent 不自选下一步——pull 侧引导与 push 侧 hook 执法互补 |
|
|
272
|
+
| `forge task intent "<注记>"` | 追加意图注记(三段工件之 intent 段):append-only——没有覆写/删除入口,意图历史即决策史,防轮次重写导致的语义漂移(rot) |
|
|
273
|
+
| `forge task checklist add/tick/drop` | 操作对账单(checklist 段):勾选即进度、断点存活,task-complete 硬门禁要求全勾(report 写完不算 done,checkbox 才算) |
|
|
274
|
+
| `forge task start --invariant "run :: expected"` | 析出不变量(instrument 段):声明期校验必须是可执行命令(叙述性约束被拒并指引降级到 checklist/intent),映射进验收标准——机器对账/freshness/complete 前置全覆盖 |
|
|
275
|
+
| `forge task wild "<说明>"` | 野外动作申报:任务管道外的显式留痕出口(比静默绕过诚实、比强制建任务轻)。记会话/分支/HEAD/是否已有任务到 `wild/declarations.jsonl`,累计计数供审计回溯(vNext INV-1 的合法出口之一) |
|
|
270
276
|
| `forge task status` | 查看当前任务门禁状态 |
|
|
271
277
|
| `forge task list` | 列出所有任务 |
|
|
272
278
|
| `forge task mine [--agent <agent>] [--role <role>] [--all-projects] [--blocked] [--json]` | 列出分派给当前/指定 agent 的任务(`--all-projects` 全仓扫描按项目分组;`--blocked` 仅被依赖阻塞的,标注卡在哪环 [status, gate 进度 passed/total]) |
|
|
@@ -313,6 +319,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
313
319
|
| `forge review pass [--ref <ref>] [--note <文本>] [--acknowledge-changes]` | 标记当前变更已通过 code-review-gate(task 模式写任务状态,否则写分支 stamp);--note 审查结论文本记入 ReviewRound/stamp 与 checklog 审计留痕;距上次基线有源码变更时裸 pass 会被拒——须 --note 记复审结论,或 --acknowledge-changes 显式自我承担(记 WARN 级 self-refresh 审计) |
|
|
314
320
|
| `forge review gate` | 判定当前是否需要审查(Stop hook 调用;exit 0=放行,1=需审 block) |
|
|
315
321
|
| `forge review status` | 显示当前审查状态 |
|
|
322
|
+
| `forge enforcement [--sample N] [--json]` | 执法健康报告(只读聚合 checklog+会话 markers+野外申报):task-guard advisory/blocked 计数、无视升档会话、缓冲窗口超时违规(升档后 3 次编辑窗口内未补救——建任务或 wild 申报——则落违规记录)、无任务测试编辑、wild 申报数;双环信号(升档超阈→审查规则本身而非加码执法)与降格信号(提升规则零阻断零升档→zombie rule 复审)。`--sample N` 随机抽已完成任务 join 其会话遥测——"无视升档仍完成且未被阻断"样本标强制复盘(无灾≠安全);随机化使审计不可预演 |
|
|
316
323
|
|
|
317
324
|
**高危命令 human-in-the-loop**:`forge hazard` 让高危命令拦截从 session 级 skill 变成 always-on 自动挡——hazard-guard hook(PreToolUse Bash)检测 `rm -rf` / `git push --force` / `git reset --hard` / `DROP DATABASE|TABLE|SCHEMA` / `TRUNCATE` / `GRANT ALL` / `kubectl delete` / `docker system prune` / `shred` / 无 WHERE 的 `DELETE|UPDATE` 等 → block 并指引 agent 获用户明确确认 → `forge hazard confirm` 登记 5min 限时标记 → 重试放行。HITL 而非硬 block:合法高危操作(删 build 产物)确认后能继续;`FORGE_ALLOW_HAZARD` env 豁免已移除(可被 agent 自我放行滥用),confirm 链是唯一放行路径。
|
|
318
325
|
|
package/bin/forge
CHANGED
|
Binary file
|
package/package.json
CHANGED