@winspan/claude-forge 2.6.4 → 2.7.2
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/README.md +2 -2
- package/dist/backup/index.d.ts +2 -2
- package/dist/backup/index.d.ts.map +1 -1
- package/dist/backup/index.js +5 -7
- package/dist/backup/index.js.map +1 -1
- package/dist/claudemd/writer.d.ts +1 -0
- package/dist/claudemd/writer.d.ts.map +1 -1
- package/dist/claudemd/writer.js +12 -0
- package/dist/claudemd/writer.js.map +1 -1
- package/dist/convention/convention-manager.d.ts +2 -4
- package/dist/convention/convention-manager.d.ts.map +1 -1
- package/dist/convention/convention-manager.js +6 -25
- package/dist/convention/convention-manager.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.js +2 -1
- package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.js +18 -48
- package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/09-pipeline-active.js +7 -0
- package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
- package/dist/daemon/handlers/stages/13-template-route.js +2 -2
- package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/18-complex-task.js +11 -3
- package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
- package/dist/pipeline/artifact-enforcement.d.ts +74 -0
- package/dist/pipeline/artifact-enforcement.d.ts.map +1 -0
- package/dist/pipeline/artifact-enforcement.js +187 -0
- package/dist/pipeline/artifact-enforcement.js.map +1 -0
- package/dist/pipeline/artifact-generator.d.ts +5 -1
- package/dist/pipeline/artifact-generator.d.ts.map +1 -1
- package/dist/pipeline/artifact-generator.js +5 -1
- package/dist/pipeline/artifact-generator.js.map +1 -1
- package/dist/pipeline/artifact-rules.d.ts +39 -0
- package/dist/pipeline/artifact-rules.d.ts.map +1 -0
- package/dist/pipeline/artifact-rules.js +104 -0
- package/dist/pipeline/artifact-rules.js.map +1 -0
- package/dist/pipeline/artifact-validator.d.ts.map +1 -1
- package/dist/pipeline/artifact-validator.js +9 -0
- package/dist/pipeline/artifact-validator.js.map +1 -1
- package/dist/pipeline/completion-detector.d.ts.map +1 -1
- package/dist/pipeline/completion-detector.js +10 -0
- package/dist/pipeline/completion-detector.js.map +1 -1
- package/dist/pipeline/completion-gate.d.ts +56 -0
- package/dist/pipeline/completion-gate.d.ts.map +1 -0
- package/dist/pipeline/completion-gate.js +165 -0
- package/dist/pipeline/completion-gate.js.map +1 -0
- package/dist/pipeline/dynamic-node-executor.d.ts +7 -6
- package/dist/pipeline/dynamic-node-executor.d.ts.map +1 -1
- package/dist/pipeline/dynamic-node-executor.js +116 -185
- package/dist/pipeline/dynamic-node-executor.js.map +1 -1
- package/dist/pipeline/dynamic-node-types.d.ts +2 -0
- package/dist/pipeline/dynamic-node-types.d.ts.map +1 -1
- package/dist/pipeline/events.d.ts +3 -0
- package/dist/pipeline/events.d.ts.map +1 -1
- package/dist/pipeline/events.js +4 -0
- package/dist/pipeline/events.js.map +1 -1
- package/dist/pipeline/execution-plan-builder.d.ts +20 -0
- package/dist/pipeline/execution-plan-builder.d.ts.map +1 -0
- package/dist/pipeline/execution-plan-builder.js +100 -0
- package/dist/pipeline/execution-plan-builder.js.map +1 -0
- package/dist/pipeline/execution-plan.d.ts +64 -0
- package/dist/pipeline/execution-plan.d.ts.map +1 -0
- package/dist/pipeline/execution-plan.js +57 -0
- package/dist/pipeline/execution-plan.js.map +1 -0
- package/dist/pipeline/i-node-executor.d.ts +2 -0
- package/dist/pipeline/i-node-executor.d.ts.map +1 -1
- package/dist/pipeline/index.d.ts +25 -8
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +137 -149
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/optimized-aggregator.d.ts.map +1 -1
- package/dist/pipeline/optimized-aggregator.js +1 -1
- package/dist/pipeline/optimized-aggregator.js.map +1 -1
- package/dist/pipeline/phase-manager.d.ts +13 -0
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +178 -18
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/dist/pipeline/types.d.ts +1 -0
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/pipeline/types.js.map +1 -1
- package/dist/storage/repositories/dynamic-pipeline-repository.d.ts.map +1 -1
- package/dist/storage/repositories/dynamic-pipeline-repository.js +11 -23
- package/dist/storage/repositories/dynamic-pipeline-repository.js.map +1 -1
- package/dist/utils/forge-resume-block.d.ts +2 -1
- package/dist/utils/forge-resume-block.d.ts.map +1 -1
- package/dist/utils/forge-resume-block.js +16 -2
- package/dist/utils/forge-resume-block.js.map +1 -1
- package/dist/utils/mutex-lock.d.ts +1 -0
- package/dist/utils/mutex-lock.d.ts.map +1 -1
- package/dist/utils/mutex-lock.js +13 -0
- package/dist/utils/mutex-lock.js.map +1 -1
- package/dist/web-static/assets/{index-C3zW2cbT.js → index-C9F94O8p.js} +1 -1
- package/dist/web-static/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Claude Forge 是一个为 Claude Code 设计的智能编排引擎,通过透明
|
|
|
11
11
|
|
|
12
12
|
- 🎯 **智能意图识别** - 自动分析任务复杂度,决定执行策略(三层架构:Ground Truth 规则 + 学习规则 + AI 降级层,支持上下文感知和活跃计划检测) [x] 2026-04-25
|
|
13
13
|
- 🔄 **Pipeline 编排** - 复杂任务自动拆分为多阶段流程(分析→设计→编码→测试→审查),支持纯事件溯源架构和状态机约束,确保状态一致性,daemon 启动时自动迁移历史数据,阶段产物统一输出到 docs/时间戳/ 目录,支持动态节点系统(Convention 定义节点类型,Skill 作为执行策略,NodeTypeRegistry 聚合节点类型,DynamicNodeExecutor 驱动执行,INodeExecutor 接口统一 PhaseManager 和 DynamicNodeExecutor,DynamicAggregator 支持动态节点事件聚合,启发式完成检测增强支持 file_patterns 和 keywords,Web API 支持动态流水线创建和手动推进,SemanticValidator 支持语义一致性校验),管理后台深度审查与修复完成(9个核心页面4750行代码,发现28个问题,修复20个P0/P1/P2/P3问题,新增质量问题上下文查询接口,优化事件展开性能和UX体验,完成P0级数据正确性和稳定性修复),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束设计与实现完成(ArtifactType定义、ArtifactConstraint约束、ArtifactCollector收集器、ArtifactValidator验证器支持复杂度驱动约束、NodeOutput结构化输出、启发式完成检测集成产物验证、Web前端展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台集成动态流水线 API 路由和前端展示,产物约束验证支持复杂度驱动(simple/moderate/complex 动态调整约束严格度),git 操作强制归类为 simple 复杂度,Analyzer 集成 Convention 上下文到 pipeline-decompose 提示词,产物验证器支持复杂度驱动约束动态调整,流程可控能力分析与实施方案文档已完成(审计范围覆盖 src/pipeline/*, src/autopilot/*, src/convention/*, src/daemon/handlers/*,当前满足度95%(已完成核心改进),提供MVP方案和严格模式实施路径),INodeExecutor 接口统一 PhaseManager 和 DynamicNodeExecutor 实现完成,流程可控硬阻断实现完成(产物验证失败10次重试后硬阻断、质量门禁must级别问题硬阻断、PhaseManager和DynamicNodeExecutor统一阻断传播链、post-tool-use-handler集成阻断检测和强制中断),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别),分步驱动执行模型设计与实现完成(Step 定义、StepOrchestrator 编排器、StepValidator 验证器、StepGateKeeper 门禁守卫、StepPromptBuilder 提示词构建器、PendingPromptsManager 集成、PreToolUse/PostToolUse 集成点、状态机驱动、失败重试与人工接管机制、SemanticValidator 集成、NodeTypeRegistry 集成、DynamicAggregator 事件聚合支持) [x] 2026-04-25
|
|
14
|
-
- 🛡️ **质量门禁** - 每个阶段自动 AI 审查,支持需求规格、安全性、代码质量、测试覆盖、性能等多维度检查,问题追踪和解决状态管理,支持上下文查询,支持 must/should 分级硬阻断(产物验证硬阻断 + 质量门禁分级阻断实现完成,代码审查通过,流程可控彻底审计报告已完成,阶段工具白名单策略已实现,Checkpoint 失败回滚机制已实现),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别、产物阶段状态机改造完成、PreToolUse 骨架预创建集成、DynamicNodeExecutor 状态机驱动逻辑集成),分步驱动执行模型支持 Step 级别质量检查(StepCheck 定义、StepValidator 验证器、must/should/may 分级、失败重试与人工接管、StepGateKeeper 工具白名单门禁),CompletionEngine 节点完成综合决策引擎实现完成(聚合 CompletionDetector 和 ArtifactValidator
|
|
14
|
+
- 🛡️ **质量门禁** - 每个阶段自动 AI 审查,支持需求规格、安全性、代码质量、测试覆盖、性能等多维度检查,问题追踪和解决状态管理,支持上下文查询,支持 must/should 分级硬阻断(产物验证硬阻断 + 质量门禁分级阻断实现完成,代码审查通过,流程可控彻底审计报告已完成,阶段工具白名单策略已实现,Checkpoint 失败回滚机制已实现),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别、产物阶段状态机改造完成、PreToolUse 骨架预创建集成、DynamicNodeExecutor 状态机驱动逻辑集成),分步驱动执行模型支持 Step 级别质量检查(StepCheck 定义、StepValidator 验证器、must/should/may 分级、失败重试与人工接管、StepGateKeeper 工具白名单门禁),CompletionEngine 节点完成综合决策引擎实现完成(聚合 CompletionDetector 和 ArtifactValidator 结果、基于置信度综合决策、支持复杂度驱动约束),产物强制执行引擎实现完成(三层防护机制:阶段指令引导 + 实时产物追踪 + 阶段推进门禁,ArtifactEnforcer 集成到 PhaseManager 和 DynamicNodeExecutor,支持产物类型推断、豁免规则、缺失提示生成,已集成到 PipelineEngine) [x] 2026-04-25
|
|
15
15
|
- 📊 **Web 管理后台** - 实时监控会话、Pipeline、质量问题(支持上下文查询和批量解决)、知识图谱、项目管理、自定义规范管理、技能管理、CLAUDE.md 管理(支持模块化查看和蒸馏压缩)、项目规范绑定管理、项目元数据管理(标签/备注/归档)、全局规范管理(同步/安装/删除/进化/YAML编辑/使用统计/进化历史)、阶段产物统一管理(docs/时间戳/目录结构+INDEX.md索引)、动态节点类型管理(NodeTypeRegistry 可视化)、TemplateRegistry 支持三种来源(builtin/user/convention)、动态流水线创建和手动推进操作、事件日志管理(查看/搜索/导出/清理)、数据库维护功能(备份/恢复/历史记录/诊断修复)、数据分析页面(会话统计、事件统计、API使用统计、成本分析、趋势图表),深度代码审查完成(9个核心页面28个问题,修复20个P0/P1/P2/P3问题,包括运行时错误、性能优化、竞态条件、UX改进、数据正确性和稳定性修复),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 数据迁移支持已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化和恢复机制已实现,DynamicPipelineNodes组件支持产物展示(artifacts列表、验证状态、类型图标、路径链接),知识图谱页面集成完成(搜索/概览/邻居/图谱可视化/CRUD操作),Analytics 页面支持会话统计、事件统计、API使用统计和成本分析,动态流水线 API 路由完整集成(创建/查询/更新/删除/手动推进) [x] 2026-04-24
|
|
16
16
|
- 🧠 **知识积累** - 自动提炼决策日志、时间线、项目规范,支持树索引和语义检索,Web管理后台集成知识图谱页面(搜索/概览/邻居/图谱可视化/CRUD操作) [x] 2026-04-25
|
|
17
17
|
- 🎨 **技能编排** - 根据意图自动匹配并注入最佳实践(TDD、重构、调试等),支持关键词映射和命中率统计 [x] 2026-04-25
|
|
@@ -26,7 +26,7 @@ Claude Forge 是一个为 Claude Code 设计的智能编排引擎,通过透明
|
|
|
26
26
|
|------|------|
|
|
27
27
|
| 意图识别 | 自动分析任务复杂度(simple/moderate/complex),决定执行策略,三层架构(Ground Truth 规则 + 学习规则 + AI 降级层),支持上下文感知和活跃计划检测 [x] 2026-04-24 |
|
|
28
28
|
| Pipeline 编排 | 复杂任务自动拆分为多阶段流程,支持纯事件溯源、状态机约束、质量门禁、阶段产物生成(统一输出到 docs/时间戳/ 目录+INDEX.md索引)、daemon 启动时自动迁移历史数据、动态节点系统(Convention 定义节点类型,NodeTypeRegistry 聚合,DynamicNodeExecutor 驱动,Skill 作为执行策略,INodeExecutor 接口统一,TemplateRegistry 支持三种来源,启发式完成检测增强,Web API 操作端点,SemanticValidator 支持语义一致性校验),管理后台深度审查与修复完成(修复运行时错误、性能问题、竞态条件、UX体验、数据正确性和稳定性等20个P0/P1/P2/P3问题),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表+NodeTypeRepository),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束系统完成(ArtifactCollector追踪Write/Edit工具调用、ArtifactValidator验证产物约束支持复杂度驱动、NodeOutput结构化输出、DynamicPipelineNodes组件展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台动态流水线 API 路由完整注册,产物约束验证支持复杂度驱动(simple/moderate/complex 动态调整约束严格度),git 操作强制归类为 simple 复杂度,Analyzer 集成 Convention 上下文到 pipeline-decompose 提示词,产物验证器支持复杂度驱动约束动态调整,流程可控能力分析与实施方案文档已完成(审计范围覆盖 src/pipeline/*, src/autopilot/*, src/convention/*, src/daemon/handlers/*,当前满足度95%(已完成核心改进),提供MVP方案和严格模式实施路径),INodeExecutor 接口统一 PhaseManager 和 DynamicNodeExecutor 实现完成,流程可控硬阻断实现完成(产物验证失败10次重试后硬阻断、质量门禁must级别问题硬阻断、统一阻断传播链、post-tool-use-handler集成阻断检测和强制中断),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别、产物阶段状态机改造完成、PreToolUse 骨架预创建集成、DynamicNodeExecutor 状态机驱动逻辑集成),分步驱动执行模型设计与实现完成(Step 定义、StepOrchestrator 编排器、StepValidator 验证器、StepGateKeeper 门禁守卫、StepPromptBuilder 提示词构建器、PendingPromptsManager 集成、PreToolUse/PostToolUse 集成点、状态机驱动、失败重试与人工接管机制、SemanticValidator 集成、NodeTypeRegistry 集成、DynamicAggregator 事件聚合支持),OrchestrationEnforcer 编排约束补全器实现完成(must 规则补全、内置 after-node 规则、DAG 环检测、失败降级策略),CompletionEngine 节点完成综合决策引擎实现完成(聚合 CompletionDetector 和 ArtifactValidator 结果、基于置信度综合决策、支持复杂度驱动约束) [x] 2026-04-25 |
|
|
29
|
-
| 质量门禁 | 每个阶段自动 AI 审查(需求规格、安全性、代码质量、测试、性能),不合格则阻止推进,支持 must/should 分级硬阻断(产物验证失败10次重试后硬阻断、质量门禁must级别问题硬阻断、统一阻断传播链、post-tool-use-handler集成阻断检测和强制中断,流程可控彻底审计报告已完成,阶段工具白名单策略已实现,Checkpoint 失败回滚机制已实现),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别、产物阶段状态机改造完成、PreToolUse 骨架预创建集成、DynamicNodeExecutor 状态机驱动逻辑集成),分步驱动执行模型支持 Step 级别质量检查(StepCheck 定义、StepValidator 验证器、must/should/may 分级、失败重试与人工接管、StepGateKeeper 工具白名单门禁),CompletionEngine 节点完成综合决策引擎实现完成(聚合 CompletionDetector 和 ArtifactValidator
|
|
29
|
+
| 质量门禁 | 每个阶段自动 AI 审查(需求规格、安全性、代码质量、测试、性能),不合格则阻止推进,支持 must/should 分级硬阻断(产物验证失败10次重试后硬阻断、质量门禁must级别问题硬阻断、统一阻断传播链、post-tool-use-handler集成阻断检测和强制中断,流程可控彻底审计报告已完成,阶段工具白名单策略已实现,Checkpoint 失败回滚机制已实现),产物生成状态机与骨架预创建机制已实现(PreToolUse 阶段骨架预创建、状态机驱动产物生成、DynamicNodeExecutor 集成状态机逻辑、SemanticValidator 支持骨架内容识别、产物阶段状态机改造完成、PreToolUse 骨架预创建集成、DynamicNodeExecutor 状态机驱动逻辑集成),分步驱动执行模型支持 Step 级别质量检查(StepCheck 定义、StepValidator 验证器、must/should/may 分级、失败重试与人工接管、StepGateKeeper 工具白名单门禁),CompletionEngine 节点完成综合决策引擎实现完成(聚合 CompletionDetector 和 ArtifactValidator 结果、基于置信度综合决策、支持复杂度驱动约束),产物强制执行引擎实现完成(三层防护机制:阶段指令引导 + 实时产物追踪 + 阶段推进门禁,ArtifactEnforcer 集成到 PhaseManager 和 DynamicNodeExecutor,支持产物类型推断、豁免规则、缺失提示生成,已集成到 PipelineEngine) [x] 2026-04-25 |
|
|
30
30
|
| 技能编排 | 根据意图自动匹配并注入最佳实践,支持关键词映射和命中率统计 [x] 2026-04-25 |
|
|
31
31
|
| 知识蒸馏 | 自动提炼决策日志、时间线、项目规范,支持树索引和语义检索,Web管理后台集成知识图谱页面(搜索/概览/邻居/图谱可视化/CRUD操作) [x] 2026-04-25 |
|
|
32
32
|
| 会话续接 | 中断后自动恢复上次工作状态 [x] 2026-04-25 |
|
package/dist/backup/index.d.ts
CHANGED
|
@@ -7,10 +7,10 @@ export declare class BackupManager {
|
|
|
7
7
|
projectPath?: string;
|
|
8
8
|
encrypt?: boolean;
|
|
9
9
|
password?: string;
|
|
10
|
-
}):
|
|
10
|
+
}): string;
|
|
11
11
|
/**
|
|
12
12
|
* 恢复备份
|
|
13
13
|
*/
|
|
14
|
-
restore(backupFile: string, strategy?: 'merge' | 'overwrite' | 'cancel'):
|
|
14
|
+
restore(backupFile: string, strategy?: 'merge' | 'overwrite' | 'cancel'): void;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"AAaA,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;IA2FV;;OAEG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAO,GAAG,WAAW,GAAG,QAAkB,GACnD,IAAI;CAsGR"}
|
package/dist/backup/index.js
CHANGED
|
@@ -2,12 +2,10 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import { createHash } from 'crypto';
|
|
5
|
-
import {
|
|
6
|
-
import { promisify } from 'util';
|
|
5
|
+
import { execFileSync } from 'child_process';
|
|
7
6
|
import yaml from 'js-yaml';
|
|
8
7
|
import Database from 'better-sqlite3';
|
|
9
8
|
import { logger } from '../utils/logger.js';
|
|
10
|
-
const execFileAsync = promisify(execFile);
|
|
11
9
|
function getForgeHome() {
|
|
12
10
|
return path.join(os.homedir(), '.claude-forge');
|
|
13
11
|
}
|
|
@@ -15,7 +13,7 @@ export class BackupManager {
|
|
|
15
13
|
/**
|
|
16
14
|
* 创建备份
|
|
17
15
|
*/
|
|
18
|
-
|
|
16
|
+
backup(options) {
|
|
19
17
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
20
18
|
const projectSuffix = options.projectPath
|
|
21
19
|
? '-' + path.basename(options.projectPath)
|
|
@@ -72,7 +70,7 @@ export class BackupManager {
|
|
|
72
70
|
};
|
|
73
71
|
fs.writeFileSync(path.join(tmpDir, 'meta.json'), JSON.stringify(meta, null, 2));
|
|
74
72
|
// 5. 打包(使用参数数组避免命令注入)
|
|
75
|
-
|
|
73
|
+
execFileSync('tar', ['-czf', outputFile, '-C', tmpDir, '.']);
|
|
76
74
|
// 6. 生成 checksum
|
|
77
75
|
const fileBuffer = fs.readFileSync(outputFile);
|
|
78
76
|
const checksum = createHash('sha256').update(fileBuffer).digest('hex');
|
|
@@ -88,7 +86,7 @@ export class BackupManager {
|
|
|
88
86
|
/**
|
|
89
87
|
* 恢复备份
|
|
90
88
|
*/
|
|
91
|
-
|
|
89
|
+
restore(backupFile, strategy = 'merge') {
|
|
92
90
|
// 1. 校验 checksum
|
|
93
91
|
const checksumFile = `${backupFile}.sha256`;
|
|
94
92
|
if (fs.existsSync(checksumFile)) {
|
|
@@ -120,7 +118,7 @@ export class BackupManager {
|
|
|
120
118
|
const tmpDir = path.join(os.tmpdir(), `claude-forge-restore-${Date.now()}`);
|
|
121
119
|
fs.mkdirSync(tmpDir, { recursive: true });
|
|
122
120
|
try {
|
|
123
|
-
|
|
121
|
+
execFileSync('tar', ['-xzf', backupFile, '-C', tmpDir]);
|
|
124
122
|
// 确保目标目录存在
|
|
125
123
|
if (!fs.existsSync(getForgeHome())) {
|
|
126
124
|
fs.mkdirSync(getForgeHome(), { recursive: true });
|
package/dist/backup/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,5 +43,6 @@ export declare class ClaudeMdWriter {
|
|
|
43
43
|
* @param writeOperation 写入操作函数,接收当前文件内容,返回新内容
|
|
44
44
|
*/
|
|
45
45
|
atomicWrite(projectPath: string, writeOperation: (currentContent: string) => string): Promise<void>;
|
|
46
|
+
atomicWriteSync(projectPath: string, writeOperation: (currentContent: string) => string): void;
|
|
46
47
|
}
|
|
47
48
|
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/claudemd/writer.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmCtE;AAED,qBAAa,cAAc;IACzB,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAE7D,OAAO,CAAC,eAAe;IAMvB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMhD;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIrD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAM5C;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAmB3C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5E;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF;;;OAGG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpF;;;;OAIG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,GACjD,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/claudemd/writer.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmCtE;AAED,qBAAa,cAAc;IACzB,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAE7D,OAAO,CAAC,eAAe;IAMvB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMhD;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIrD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAM5C;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAmB3C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5E;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF;;;OAGG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpF;;;;OAIG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,GACjD,OAAO,CAAC,IAAI,CAAC;IAShB,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,GACjD,IAAI;CAYR"}
|
package/dist/claudemd/writer.js
CHANGED
|
@@ -189,5 +189,17 @@ export class ClaudeMdWriter {
|
|
|
189
189
|
fs.writeFileSync(filePath, updated, 'utf-8');
|
|
190
190
|
});
|
|
191
191
|
}
|
|
192
|
+
atomicWriteSync(projectPath, writeOperation) {
|
|
193
|
+
this.writeLock.runExclusiveSync(projectPath, () => {
|
|
194
|
+
const filePath = this.getClaudeMdPath(projectPath);
|
|
195
|
+
const dir = path.dirname(filePath);
|
|
196
|
+
if (!fs.existsSync(dir)) {
|
|
197
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
198
|
+
}
|
|
199
|
+
const current = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : '';
|
|
200
|
+
const updated = writeOperation(current);
|
|
201
|
+
fs.writeFileSync(filePath, updated, 'utf-8');
|
|
202
|
+
});
|
|
203
|
+
}
|
|
192
204
|
}
|
|
193
205
|
//# sourceMappingURL=writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/claudemd/writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/claudemd/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,UAAU,GAAG,WAAW,CAAC,mBAAmB,CAAC;AACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC;AAE/C,qCAAqC;AACrC,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAU,cAAc;AAC9C,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAG,iBAAiB;AAE3E,+BAA+B;AAC/B,MAAM,oBAAoB,GAAG;IAC3B,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,OAAO,QAAQ,KAAK,CAAC,MAAM,eAAe,CAAC;IAC7C,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,aAAa,GACjB,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAK,eAAe;QAC/C,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,IAAK,YAAY;QAC7D,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK;QACjC,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAE,QAAQ;IAEzD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAClE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,cAAc;IACzB,uCAAuC;IACtB,SAAS,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAErD,eAAe,CAAC,WAAmB;QACzC,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,WAAmB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,OAAe,CAAC;QACpB,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,WAAmB;QAC3C,yBAAyB;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9C,6CAA6C;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACnC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;YACvC,YAAY;YACZ,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,YAAY,GAAG,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,WAAmB;QAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAErD,MAAM,SAAS,GAAG,GAAG,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YAEtE,IAAI,YAAoB,CAAC;YACzB,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,GAAG,GAAG,SAAS,OAAO,WAAW,IAAI,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,GAAG,SAAS,IAAI,CAAC;YAClC,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,cAAsB;QACjE,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,WAAqB;QAClE,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,GAAG,WAAW;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC;iBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,OAAO,GAAG,eAAe,OAAO,EAAE,CAAC;YAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,wBAAwB,CAAC;YAC9C,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,OAAO,KAAK,UAAU,EAAE,CAAC;YAE3D,IAAI,OAAe,CAAC;YACpB,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,SAAS;gBACT,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAI,MAAM,CAAC,GAAG,YAAY,aAAa,UAAU,EAAE,CAAC,EACpD,KAAK,CACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC;YACjD,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,cAAkD;QAElD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CACb,WAAmB,EACnB,cAAkD;QAElD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ConventionLoader } from './convention-loader.js';
|
|
2
2
|
import type { Convention } from './types.js';
|
|
3
|
-
import
|
|
3
|
+
import { ClaudeMdWriter } from '../claudemd/writer.js';
|
|
4
4
|
import type { SQLiteStorage } from '../storage/sqlite.js';
|
|
5
5
|
export declare class ConventionManager {
|
|
6
6
|
private loader;
|
|
7
7
|
private claudeMdWriter;
|
|
8
|
-
private writerPromise;
|
|
9
8
|
/** 可选的 storage 注入,用于节点类型持久化 */
|
|
10
9
|
private static storage;
|
|
11
10
|
/** 节点类型注册缓存:projectPath → 绑定 ID 列表的哈希 */
|
|
@@ -13,7 +12,6 @@ export declare class ConventionManager {
|
|
|
13
12
|
/** 注入 storage(daemon 启动时调用一次) */
|
|
14
13
|
static setStorage(storage: SQLiteStorage): void;
|
|
15
14
|
constructor(loader?: ConventionLoader, claudeMdWriter?: ClaudeMdWriter);
|
|
16
|
-
private getWriter;
|
|
17
15
|
/** 获取 ConventionLoader 实例(供 ConventionEvolver 使用) */
|
|
18
16
|
getLoader(): ConventionLoader;
|
|
19
17
|
/**
|
|
@@ -55,7 +53,7 @@ export declare class ConventionManager {
|
|
|
55
53
|
* 使用 <!-- forge:convention-start:{id} --> 标记,与 claudemd-auto 区块并列。
|
|
56
54
|
* 若 CLAUDE.md 不存在则创建。
|
|
57
55
|
*/
|
|
58
|
-
injectIntoClaudeMd(projectPath: string, convention: Convention):
|
|
56
|
+
injectIntoClaudeMd(projectPath: string, convention: Convention): void;
|
|
59
57
|
private getBindingsPath;
|
|
60
58
|
private readBindings;
|
|
61
59
|
private writeBindings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convention-manager.d.ts","sourceRoot":"","sources":["../../src/convention/convention-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAA4B,MAAM,YAAY,CAAC;AAEvE,OAAO,
|
|
1
|
+
{"version":3,"file":"convention-manager.d.ts","sourceRoot":"","sources":["../../src/convention/convention-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAA4B,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8B;IAEpD,yCAAyC;IACzC,OAAO,CAAC,qBAAqB,CAA6B;IAE1D,iCAAiC;IACjC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;gBAInC,MAAM,CAAC,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,cAAc;IAKtE,qDAAqD;IACrD,SAAS,IAAI,gBAAgB;IAM7B;;;;;OAKG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU;IA0B3D;;;;;OAKG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBxD,2DAA2D;IAC3D,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE;IAsBvD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAkCzB,0BAA0B;IAC1B,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAMnE;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IA2BvE;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAenD;;;;OAIG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IA6BrE,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;CAa3B"}
|
|
@@ -3,6 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
4
|
import { ConventionLoader } from './convention-loader.js';
|
|
5
5
|
import { ConventionDistiller } from './convention-distiller.js';
|
|
6
|
+
import { ClaudeMdWriter } from '../claudemd/writer.js';
|
|
6
7
|
import { NodeTypeRegistry } from '../pipeline/node-type-registry.js';
|
|
7
8
|
import { syncConventionNodeTypes } from '../pipeline/node-type-sync.js';
|
|
8
9
|
const BINDINGS_FILE = 'project-conventions.json';
|
|
@@ -12,7 +13,6 @@ function escapeRegex(str) {
|
|
|
12
13
|
export class ConventionManager {
|
|
13
14
|
loader;
|
|
14
15
|
claudeMdWriter;
|
|
15
|
-
writerPromise = null;
|
|
16
16
|
/** 可选的 storage 注入,用于节点类型持久化 */
|
|
17
17
|
static storage = null;
|
|
18
18
|
/** 节点类型注册缓存:projectPath → 绑定 ID 列表的哈希 */
|
|
@@ -23,24 +23,7 @@ export class ConventionManager {
|
|
|
23
23
|
}
|
|
24
24
|
constructor(loader, claudeMdWriter) {
|
|
25
25
|
this.loader = loader ?? new ConventionLoader();
|
|
26
|
-
|
|
27
|
-
this.claudeMdWriter = claudeMdWriter;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.claudeMdWriter = null;
|
|
31
|
-
// 延迟导入避免循环依赖
|
|
32
|
-
this.writerPromise = import('../claudemd/writer.js').then(m => {
|
|
33
|
-
this.claudeMdWriter = new m.ClaudeMdWriter();
|
|
34
|
-
return this.claudeMdWriter;
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async getWriter() {
|
|
39
|
-
if (this.claudeMdWriter)
|
|
40
|
-
return this.claudeMdWriter;
|
|
41
|
-
if (this.writerPromise)
|
|
42
|
-
return this.writerPromise;
|
|
43
|
-
throw new Error('ClaudeMdWriter 未初始化');
|
|
26
|
+
this.claudeMdWriter = claudeMdWriter ?? new ClaudeMdWriter();
|
|
44
27
|
}
|
|
45
28
|
/** 获取 ConventionLoader 实例(供 ConventionEvolver 使用) */
|
|
46
29
|
getLoader() {
|
|
@@ -206,7 +189,7 @@ export class ConventionManager {
|
|
|
206
189
|
* 使用 <!-- forge:convention-start:{id} --> 标记,与 claudemd-auto 区块并列。
|
|
207
190
|
* 若 CLAUDE.md 不存在则创建。
|
|
208
191
|
*/
|
|
209
|
-
|
|
192
|
+
injectIntoClaudeMd(projectPath, convention) {
|
|
210
193
|
const startTag = `<!-- forge:convention-start:${convention.id} -->`;
|
|
211
194
|
const endTag = `<!-- forge:convention-end:${convention.id} -->`;
|
|
212
195
|
const block = [
|
|
@@ -217,8 +200,7 @@ export class ConventionManager {
|
|
|
217
200
|
'',
|
|
218
201
|
endTag,
|
|
219
202
|
].join('\n');
|
|
220
|
-
|
|
221
|
-
await writer.atomicWrite(projectPath, (current) => {
|
|
203
|
+
this.claudeMdWriter.atomicWriteSync(projectPath, (current) => {
|
|
222
204
|
if (current.includes(startTag)) {
|
|
223
205
|
const regex = new RegExp(`${escapeRegex(startTag)}[\\s\\S]*?${escapeRegex(endTag)}`);
|
|
224
206
|
return current.replace(regex, block);
|
|
@@ -251,11 +233,10 @@ export class ConventionManager {
|
|
|
251
233
|
fs.mkdirSync(dir, { recursive: true });
|
|
252
234
|
fs.writeFileSync(bindingsPath, JSON.stringify(bindings, null, 2), 'utf-8');
|
|
253
235
|
}
|
|
254
|
-
|
|
236
|
+
removeFromClaudeMd(projectPath, conventionId) {
|
|
255
237
|
const startTag = `<!-- forge:convention-start:${conventionId} -->`;
|
|
256
238
|
const endTag = `<!-- forge:convention-end:${conventionId} -->`;
|
|
257
|
-
|
|
258
|
-
await writer.atomicWrite(projectPath, (content) => {
|
|
239
|
+
this.claudeMdWriter.atomicWriteSync(projectPath, (content) => {
|
|
259
240
|
const regex = new RegExp(`\\n?${escapeRegex(startTag)}[\\s\\S]*?${escapeRegex(endTag)}\\n?`);
|
|
260
241
|
const updated = content.replace(regex, '\n').trimEnd() + '\n';
|
|
261
242
|
logger.info(`[规范管理器] 已从 CLAUDE.md 移除 ${conventionId} 区块`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convention-manager.js","sourceRoot":"","sources":["../../src/convention/convention-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"convention-manager.js","sourceRoot":"","sources":["../../src/convention/convention-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB,CAGtB;gBAES,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"post-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB,CAGtB;gBAES,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAqQ9D"}
|
|
@@ -14,7 +14,8 @@ export class PostToolUseHandler extends BaseHookHandler {
|
|
|
14
14
|
super(ctx);
|
|
15
15
|
}
|
|
16
16
|
async handle(event) {
|
|
17
|
-
const { orchestration, skillRegistry, pipelineEngine, trigger, resumeEngine, qualityGate, intentEngine, knowledgeGraph
|
|
17
|
+
const { orchestration, skillRegistry, pipelineEngine, trigger, resumeEngine, qualityGate, intentEngine, knowledgeGraph } = this.ctx;
|
|
18
|
+
const deniedTools = this.ctx.deniedTools ?? new Map();
|
|
18
19
|
// 0. 如果对应的 PreToolUse 已被拒绝,跳过所有 Pipeline 处理(工具实际未执行)
|
|
19
20
|
const denyKey = `${event.session_id}:${event.project_path}:${event.tool_name}:${JSON.stringify(event.tool_input ?? {})}`;
|
|
20
21
|
const denyCount = deniedTools.get(denyKey) ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,0DAA0D;IAClD,iBAAiB,GAAG,aAAa,CAAC,QAAQ,CAAkB,oBAAoB,EAAE;QACxF,GAAG,EAAE,KAAK,CAAC,aAAa;QACxB,GAAG,EAAE,IAAI,CAAC,MAAM;KACjB,CAAC,CAAC;IAEH,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"post-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkK7D,OAAO,CAAC,mBAAmB;CAsB5B"}
|
|
@@ -29,7 +29,9 @@ export class PreToolUseHandler extends BaseHookHandler {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
// 1.5 硬阻断检查:PostToolUse 已判定 Pipeline 阻断后,在 PreToolUse 阶段拒绝所有后续工具调用
|
|
32
|
-
const blockedState = pipelineEngine
|
|
32
|
+
const blockedState = pipelineEngine && typeof pipelineEngine.getBlockedState === 'function'
|
|
33
|
+
? pipelineEngine.getBlockedState(event.project_path)
|
|
34
|
+
: null;
|
|
33
35
|
if (blockedState) {
|
|
34
36
|
const reason = blockedState.reason || '[Pipeline 已阻断] 产物验证失败或质量门禁未通过,必须修复后重启 Pipeline';
|
|
35
37
|
logger.error(`[Forge:硬阻断] 拒绝工具调用:phase-blocked | tool=${event.tool_name}`);
|
|
@@ -46,34 +48,21 @@ export class PreToolUseHandler extends BaseHookHandler {
|
|
|
46
48
|
},
|
|
47
49
|
};
|
|
48
50
|
}
|
|
49
|
-
// 1.6
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// 记录被拒绝的工具调用,PostToolUse 据此跳过产物验证和重试计数
|
|
65
|
-
const denyKey = `${event.session_id}:${event.project_path}:${tool}:${JSON.stringify(event.tool_input ?? {})}`;
|
|
66
|
-
deniedTools.set(denyKey, (deniedTools.get(denyKey) ?? 0) + 1);
|
|
67
|
-
return {
|
|
68
|
-
allow: false,
|
|
69
|
-
reason: `[Forge 产物门禁] 当前节点处于产物修复阶段(enriching)。只允许使用 Write/Edit 修复产物;Bash 仅允许发送完成信号(FORGE_NODE_DONE)。请立即编辑已生成的文档产物文件。`,
|
|
70
|
-
hookSpecificOutput: {
|
|
71
|
-
hookEventName: 'PreToolUse',
|
|
72
|
-
permissionDecision: 'deny',
|
|
73
|
-
permissionDecisionReason: `产物重试(enriching)期间仅允许 Write/Edit,Bash 仅允许 FORGE_NODE_DONE;禁止 ${tool}`,
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
51
|
+
// 1.6 动态 Pipeline 统一前置门禁:产物修复 + Step 工具白名单
|
|
52
|
+
if (pipelineEngine && event.tool_name && typeof pipelineEngine.evaluatePreToolGate === 'function') {
|
|
53
|
+
const preToolGate = pipelineEngine.evaluatePreToolGate(event);
|
|
54
|
+
if (preToolGate && !preToolGate.allowed) {
|
|
55
|
+
const denyKey = `${event.session_id}:${event.project_path}:${event.tool_name}:${JSON.stringify(event.tool_input ?? {})}`;
|
|
56
|
+
deniedTools.set(denyKey, (deniedTools.get(denyKey) ?? 0) + 1);
|
|
57
|
+
return {
|
|
58
|
+
allow: false,
|
|
59
|
+
reason: preToolGate.reason,
|
|
60
|
+
hookSpecificOutput: {
|
|
61
|
+
hookEventName: 'PreToolUse',
|
|
62
|
+
permissionDecision: 'deny',
|
|
63
|
+
permissionDecisionReason: preToolGate.reason ?? '动态 Pipeline 前置门禁拒绝',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
77
66
|
}
|
|
78
67
|
}
|
|
79
68
|
// 2. Skill 推荐注入(传入当前 Pipeline 阶段,支持按阶段过滤技能)
|
|
@@ -124,25 +113,6 @@ export class PreToolUseHandler extends BaseHookHandler {
|
|
|
124
113
|
};
|
|
125
114
|
}
|
|
126
115
|
}
|
|
127
|
-
// 3.6 Step 级工具白名单(Step 模式启用时生效)
|
|
128
|
-
if (pipelineEngine && activePipeline && activePipeline.id.startsWith('dp_') && event.tool_name) {
|
|
129
|
-
const stepGateResult = pipelineEngine.checkStepGate(event);
|
|
130
|
-
if (stepGateResult && !stepGateResult.allowed) {
|
|
131
|
-
logger.warn(`[Forge:StepGate] 工具已拦截:${event.tool_name} | ${stepGateResult.reason}`);
|
|
132
|
-
// 记录被拒绝的工具调用
|
|
133
|
-
const denyKey = `${event.session_id}:${event.project_path}:${event.tool_name}:${JSON.stringify(event.tool_input ?? {})}`;
|
|
134
|
-
deniedTools.set(denyKey, (deniedTools.get(denyKey) ?? 0) + 1);
|
|
135
|
-
return {
|
|
136
|
-
allow: false,
|
|
137
|
-
reason: stepGateResult.reason,
|
|
138
|
-
hookSpecificOutput: {
|
|
139
|
-
hookEventName: 'PreToolUse',
|
|
140
|
-
permissionDecision: 'deny',
|
|
141
|
-
permissionDecisionReason: stepGateResult.reason,
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
116
|
// 3.6 Forge 管理项目:Write/Edit 无活跃 Pipeline 时硬阻断
|
|
147
117
|
// 豁免:claude-forge 自身开发(FORGE_DEV=1 或项目路径包含 claude-forge 源码目录)
|
|
148
118
|
const toolName = event.tool_name || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACnC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAEvD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAEtH,IAAI,QAAQ,GAAwB,IAAI,CAAC;QAEzC,4BAA4B;QAC5B,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnF,QAAQ,GAAG,IAAI,CAAC,aAAa,CAC3B,QAAQ,EACR,cAAc,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAC1E,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,SAAS,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/E,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,YAAY,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"pre-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"09-pipeline-active.d.ts","sourceRoot":"","sources":["../../../../src/daemon/handlers/stages/09-pipeline-active.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,sDAAsD;AACtD,qBAAa,mBAAoB,YAAW,KAAK;IAC/C,QAAQ,CAAC,IAAI,sCAAkB;IAC/B,QAAQ,CAAC,YAAY,WAAuB;IAE5C,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyE;IAE1G,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"09-pipeline-active.d.ts","sourceRoot":"","sources":["../../../../src/daemon/handlers/stages/09-pipeline-active.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,sDAAsD;AACtD,qBAAa,mBAAoB,YAAW,KAAK;IAC/C,QAAQ,CAAC,IAAI,sCAAkB;IAC/B,QAAQ,CAAC,YAAY,WAAuB;IAE5C,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyE;IAE1G,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;CAsF/D"}
|
|
@@ -51,6 +51,13 @@ export class PipelineActiveStage {
|
|
|
51
51
|
if (phaseDirective) {
|
|
52
52
|
parts.push(`[Forge Pipeline 当前阶段指令]\n${phaseDirective}`);
|
|
53
53
|
}
|
|
54
|
+
// 2.5. 产物门禁提示(如果有被阻断的提示)
|
|
55
|
+
const artifactReminder = pipelineEngine.getArtifactGateReminder(ctx.event.project_path);
|
|
56
|
+
if (artifactReminder) {
|
|
57
|
+
parts.push(`[Forge Pipeline 产物要求]\n${artifactReminder}`);
|
|
58
|
+
// 清除提示,避免重复注入
|
|
59
|
+
pipelineEngine.clearArtifactGateReminder(ctx.event.project_path);
|
|
60
|
+
}
|
|
54
61
|
// 3. 任务进度(仅在阶段指令存在时附加,避免重复信息)
|
|
55
62
|
if (phaseDirective) {
|
|
56
63
|
const taskProgress = pipelineEngine.getTaskProgress(ctx.event.project_path);
|