@agent_forge/forge-win32-x64 1.24.0 → 1.26.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
@@ -174,15 +174,16 @@ Layer 3: 会话结束验证
174
174
  Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑 task JSON 等方式绕过——bash-guard 拦截工具层,file-sentinel 监控文件层,task-guard 保护配置层。
175
175
 
176
176
  <details>
177
- <summary><b>📖 内置 Hook 完整清单(17 个)</b></summary>
177
+ <summary><b>📖 内置 Hook 完整清单(18 个)</b></summary>
178
178
 
179
179
  | Hook | 触发时机 | 功能 |
180
180
  |------|----------|------|
181
181
  | **task-guard** | Write/Edit 前 | 无活跃任务时 WARN(仅 `.forge/*`/`.claude/settings*` 自保护 FAIL——此类项目级文件只在团队模式/老项目存在),保护 Forge 配置不被篡改 |
182
+ | **freeze-guard** | Write/Edit 前 | `forge freeze <路径>...` 激活后硬阻断冻结路径之外的 Write/Edit——「只改这里别动其他」的 session 级硬护栏(on-demand-guards /freeze 的 forge 侧落地);多路径、相对路径归一化、Windows 大小写不敏感;排在 task-guard 之前优先判定;`forge freeze --off` 解除 |
182
183
  | **read-before-edit** | Write/Edit 前(活跃任务内) | 编辑本会话未 Read 过的现存源文件 → 硬阻断(`BLOCKED`)。Edit 需精确匹配旧文本,未读即凭记忆盲改——old_string 撞中即错改入库,先 Read 再 Edit。豁免新建文件/测试文件/非源码;批量重构逃生 `forge task override --work-activity disable`(降 evidence 强度到 Weak)。reads-log 落盘随会话存活,压缩后仍累计 |
183
184
  | **assertion-check** | Write/Edit 前 | 检测断言弱化(t.Fatal → t.Log、assert! 被删除等),advisory 提醒不阻塞(agent 自检) |
184
185
  | **bash-guard** | Bash 前 | 检测命令中的写文件模式(writeFile、cat >、sed -i 等),无任务时 WARN(源码随后被 file-sentinel 隔离) |
185
- | **hazard-guard** | Bash 前 | 高危命令(`rm -rf`、`git push --force`、`DROP TABLE/SCHEMA`、`TRUNCATE`、`GRANT ALL`、`kubectl delete`、`docker system prune`、无 WHERE 的 `DELETE/UPDATE` 等)human-in-the-loop 拦截:block + 指引用户确认 → `forge hazard confirm` 登记 5min 限时标记 → 重试放行;测试/CI 设 `FORGE_ALLOW_HAZARD=1` 跳过 |
186
+ | **hazard-guard** | Bash 前 | 高危命令(`rm -rf`、`git push --force`、`DROP TABLE/SCHEMA`、`TRUNCATE`、`GRANT ALL`、`kubectl delete`、`docker system prune`、无 WHERE 的 `DELETE/UPDATE`、解释器内联删除如 `python -c "os.remove(...)"` 等)human-in-the-loop 拦截:block + 指引用户确认 → `forge hazard confirm` 登记 5min 限时标记 → 重试放行(confirm 链是唯一放行路径,`FORGE_ALLOW_HAZARD` 已移除) |
186
187
  | **auto-compile** | Write/Edit 后 | advisory 提醒用对应技术栈编译命令自检(go build / cargo check / mvn / tsc 等),不强制编译 |
187
188
  | **workflow-test-guard** | Write/Edit 后 | 改 `.github/workflows/*.yml` 后自动跑 `internal/ci` 守护测试,把"沙盒异常"即时反馈给 agent(不依赖 CI 兜底),是 release.yml test→goreleaser→npm needs 链的实时守护层 |
188
189
  | **file-sentinel** | Bash 后 | 监控文件变更,未授权修改隔离到 DataDir/quarantine/(`forge data-dir` 查看路径,可恢复,不删除) |
@@ -252,13 +253,21 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
252
253
  | `forge review gate` | 判定当前是否需要审查(Stop hook 调用;exit 0=放行,1=需审 block) |
253
254
  | `forge review status` | 显示当前审查状态 |
254
255
 
255
- **高危命令 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 产物)确认后能继续;测试/CI 可设 `FORGE_ALLOW_HAZARD=1` 跳过。
256
+ **高危命令 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 链是唯一放行路径。
256
257
 
257
258
  | 命令 | 说明 |
258
259
  |------|------|
259
260
  | `forge hazard confirm <命令>` | 登记一次高危命令确认(5min 内同命令重试放行) |
260
261
  | `forge hazard status` | 列出当前有效确认及剩余时间 |
261
262
 
263
+ **写入范围冻结**:`forge freeze` 把 on-demand-guards 的 /freeze 目录锁定从「agent 每回合自检」的 prompt 型护栏落地为真 hook——激活后 freeze-guard hook(PreToolUse Write|Edit,排在 task-guard 之前优先判定)硬阻断所有冻结路径之外的写入,长会话/压缩后不漂移。支持多路径、相对路径(相对当前目录归一化)、Windows 大小写不敏感比较。
264
+
265
+ | 命令 | 说明 |
266
+ |------|------|
267
+ | `forge freeze <路径>...` | 激活 freeze(可多路径;再次激活即替换范围) |
268
+ | `forge freeze --off` | 解除 freeze(幂等) |
269
+ | `forge freeze --status` | 查看当前 freeze 状态 |
270
+
262
271
  **Act 反馈臂(证据驱动结论)**:`forge task complete` 时把本任务的证据驱动结论(评分 + 证据强度 + 验收通过率 + 低分维度)落盘到 `~/.forge/projects/<项目key>/act/conclusions.jsonl`,喂给 `session-retrospective`。证据弱(Unverified/Weak)或低分(<70)的结论标 RetrospectiveNudge——对冲"高分但没真验证"的 LLM-judge 盲区。
263
272
 
264
273
  | 命令 | 说明 |
package/bin/forge.exe CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent_forge/forge-win32-x64",
3
- "version": "1.24.0",
3
+ "version": "1.26.0",
4
4
  "description": "Forge native binary for win32-x64. Auto-installed via optionalDependencies of @agent_forge/forge; do not depend on directly.",
5
5
  "os": [
6
6
  "win32"