@winspan/claude-forge 0.1.3 → 0.1.4
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/dist/autopilot/intent-engine.d.ts +2 -1
- package/dist/autopilot/intent-engine.d.ts.map +1 -1
- package/dist/autopilot/intent-engine.js +8 -4
- package/dist/autopilot/intent-engine.js.map +1 -1
- package/dist/claudemd/index.d.ts +1 -1
- package/dist/claudemd/index.d.ts.map +1 -1
- package/dist/claudemd/index.js +30 -4
- package/dist/claudemd/index.js.map +1 -1
- package/dist/claudemd/prompts.d.ts +4 -1
- package/dist/claudemd/prompts.d.ts.map +1 -1
- package/dist/claudemd/prompts.js +41 -5
- package/dist/claudemd/prompts.js.map +1 -1
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +305 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tui.d.ts.map +1 -1
- package/dist/cli/tui.js +2 -0
- package/dist/cli/tui.js.map +1 -1
- package/dist/convention/official-sync.d.ts +21 -0
- package/dist/convention/official-sync.d.ts.map +1 -0
- package/dist/convention/official-sync.js +196 -0
- package/dist/convention/official-sync.js.map +1 -0
- package/dist/daemon/engine-registry.d.ts.map +1 -1
- package/dist/daemon/engine-registry.js +3 -0
- package/dist/daemon/engine-registry.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 +3 -2
- package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +3 -2
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.d.ts +5 -0
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +61 -4
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +19 -3
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +6 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +28 -0
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/server.d.ts +2 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +20 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/distill/index.d.ts.map +1 -1
- package/dist/distill/index.js +4 -0
- package/dist/distill/index.js.map +1 -1
- package/dist/distill/writer.d.ts +22 -0
- package/dist/distill/writer.d.ts.map +1 -1
- package/dist/distill/writer.js +77 -0
- package/dist/distill/writer.js.map +1 -1
- package/dist/hooks/notification.sh +3 -1
- package/dist/hooks/post-tool-use.sh +3 -1
- package/dist/hooks/pre-tool-use.sh +3 -1
- package/dist/hooks/stop.sh +3 -1
- package/dist/hooks/user-prompt-submit.sh +3 -1
- package/dist/pipeline/phase-manager.d.ts +4 -0
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +52 -10
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import yaml from 'js-yaml';
|
|
4
|
+
import { CONVENTIONS_DIR, ConventionLoader } from './convention-loader.js';
|
|
5
|
+
import { logger } from '../utils/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* 内置官方 Convention — daemon 启动时自动同步到 ~/.claude-forge/conventions/
|
|
8
|
+
* 版本号变更时自动更新,尊重进化器产出的更高版本
|
|
9
|
+
*/
|
|
10
|
+
const OFFICIAL_CONVENTIONS = [
|
|
11
|
+
{
|
|
12
|
+
id: 'official-bmad',
|
|
13
|
+
version: '1.0.0',
|
|
14
|
+
data: {
|
|
15
|
+
id: 'official-bmad',
|
|
16
|
+
name: 'BMad 敏捷开发规范',
|
|
17
|
+
version: '1.0.0',
|
|
18
|
+
description: 'BMad 敏捷方法论:角色驱动、流程规范的全栈开发工作流',
|
|
19
|
+
source: 'official',
|
|
20
|
+
principles: `## 来自 BMad 敏捷开发规范
|
|
21
|
+
本项目遵循 BMad 敏捷开发规范,所有功能开发必须按以下原则执行:
|
|
22
|
+
|
|
23
|
+
### 角色体系
|
|
24
|
+
- **产品经理(product_manager)**:负责需求分析和产品规格,输出用户故事和验收标准
|
|
25
|
+
- **架构师(architect)**:负责技术方案设计,输出组件边界、数据模型和关键技术决策
|
|
26
|
+
- **开发工程师(developer)**:负责编码实现,遵循架构方案,编写完整可运行代码
|
|
27
|
+
- **技术负责人(tech_lead)**:负责代码审查,确保实现符合规格和架构方案
|
|
28
|
+
|
|
29
|
+
### 流程原则
|
|
30
|
+
- 新功能开发必须先有产品规格文档(docs/product-spec.md)
|
|
31
|
+
- 架构决策必须有文档记录
|
|
32
|
+
- 代码审查关注正确性、安全性、可维护性三个维度
|
|
33
|
+
- 每个角色有明确的输入输出契约,不越界操作`,
|
|
34
|
+
active_prompt: '遵循 BMad 敏捷规范:需求→架构→实现→审查,每步有明确角色和产出物。',
|
|
35
|
+
roles: {
|
|
36
|
+
product_manager: {
|
|
37
|
+
name: '产品经理',
|
|
38
|
+
responsibilities: '分析需求,输出用户故事和验收标准,确保需求清晰无歧义',
|
|
39
|
+
constraints: '不涉及技术实现细节,聚焦用户价值和业务逻辑',
|
|
40
|
+
},
|
|
41
|
+
architect: {
|
|
42
|
+
name: '架构师',
|
|
43
|
+
responsibilities: '设计技术方案,定义组件边界、数据模型、API 契约和关键技术决策',
|
|
44
|
+
constraints: '不写实现代码,输出可执行的设计文档',
|
|
45
|
+
},
|
|
46
|
+
developer: {
|
|
47
|
+
name: '开发工程师',
|
|
48
|
+
responsibilities: '按架构方案编写完整可运行代码,遵循代码规范',
|
|
49
|
+
constraints: '不偏离架构方案,遇到方案未覆盖的情况先更新方案再实现',
|
|
50
|
+
},
|
|
51
|
+
tech_lead: {
|
|
52
|
+
name: '技术负责人',
|
|
53
|
+
responsibilities: '代码审查,确保实现符合规格和架构方案,把关质量',
|
|
54
|
+
constraints: '审查基于事实,不重写代码,只指出问题和改进方向',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
quality_standards: [
|
|
58
|
+
{ category: '流程', rule: '新功能开发必须先有产品规格文档', severity: 'must' },
|
|
59
|
+
{ category: '流程', rule: '架构决策必须有文档记录', severity: 'must' },
|
|
60
|
+
{ category: '代码', rule: '代码必须经过至少一轮审查才能合并', severity: 'should' },
|
|
61
|
+
{ category: '交付', rule: '每个功能必须有可测试的验收标准', severity: 'must' },
|
|
62
|
+
],
|
|
63
|
+
evolution: { auto_optimize: true, optimize_interval_days: 14 },
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'official-harness-engineering',
|
|
68
|
+
version: '1.0.0',
|
|
69
|
+
data: {
|
|
70
|
+
id: 'official-harness-engineering',
|
|
71
|
+
name: 'Harness Engineering 安全重构规范',
|
|
72
|
+
version: '1.0.0',
|
|
73
|
+
description: '先织安全网再动代码:遗留代码改造的工程方法论',
|
|
74
|
+
source: 'official',
|
|
75
|
+
principles: `## 来自 Harness Engineering 安全重构规范
|
|
76
|
+
本项目遵循 Harness Engineering 安全重构规范,所有遗留代码改造必须按以下原则执行:
|
|
77
|
+
|
|
78
|
+
### 核心理念:先织安全网,再动代码
|
|
79
|
+
在没有充分理解和测试覆盖的情况下修改遗留代码,是最危险的工程行为。
|
|
80
|
+
Harness Engineering 要求在任何修改之前,先建立足够的安全网。
|
|
81
|
+
|
|
82
|
+
### 遗留代码改造流程
|
|
83
|
+
- **理解**:代码考古学家深度阅读现有代码,输出行为文档
|
|
84
|
+
- **织网**:安全网工程师建立特征测试,覆盖所有已知边界情况
|
|
85
|
+
- **修改**:外科医生在安全网保护下执行最小化精准修改
|
|
86
|
+
- **验证**:验证工程师确认修改前后行为一致
|
|
87
|
+
|
|
88
|
+
### TypeScript 专项原则
|
|
89
|
+
- 严格启用 \`strict: true\`,禁止使用 \`any\` 类型(必须有显式类型注解或泛型替代)
|
|
90
|
+
- 模块边界使用 \`interface\` 定义契约,内部实现使用 \`type\`
|
|
91
|
+
- 异步操作统一使用 \`async/await\`,禁止混用 Promise 链和回调
|
|
92
|
+
- 错误处理必须显式:不得静默吞掉异常,catch 块必须有实质性处理逻辑
|
|
93
|
+
- 禁止在代码中硬编码密钥、密码或任何敏感信息,使用环境变量管理
|
|
94
|
+
|
|
95
|
+
### 流程融合原则(新功能 vs 遗留改造)
|
|
96
|
+
- 新功能开发遵循 BMad 流程:产品规格 → 架构设计 → 实现 → 审查
|
|
97
|
+
- 遗留代码改造遵循 Harness 流程:理解 → 织网 → 修改 → 验证
|
|
98
|
+
- 两类任务冲突时,优先保障安全网(Harness 原则优先),再推进功能迭代(BMad 原则跟进)`,
|
|
99
|
+
active_prompt: '遵循 Harness Engineering:改动遗留代码前先建立特征测试,每次最小修改后立即验证。',
|
|
100
|
+
roles: {
|
|
101
|
+
code_archaeologist: {
|
|
102
|
+
name: '代码考古学家',
|
|
103
|
+
responsibilities: '深度阅读现有代码,理解行为边界,输出行为文档',
|
|
104
|
+
constraints: '不修改代码,只产出理解文档',
|
|
105
|
+
},
|
|
106
|
+
safety_net_engineer: {
|
|
107
|
+
name: '安全网工程师',
|
|
108
|
+
responsibilities: '建立特征测试(characterization tests),覆盖所有已知边界情况',
|
|
109
|
+
constraints: '测试描述"代码现在做什么"而非"应该做什么"',
|
|
110
|
+
},
|
|
111
|
+
surgeon: {
|
|
112
|
+
name: '外科医生',
|
|
113
|
+
responsibilities: '在安全网保护下执行最小化精准修改',
|
|
114
|
+
constraints: '每次只改一处,改完立即运行 harness,失败则立即回滚',
|
|
115
|
+
},
|
|
116
|
+
verification_engineer: {
|
|
117
|
+
name: '验证工程师',
|
|
118
|
+
responsibilities: '确认修改前后行为一致,新行为有新测试覆盖',
|
|
119
|
+
constraints: '全部 harness 通过后才允许提交',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
quality_standards: [
|
|
123
|
+
{ category: '安全网', rule: '修改遗留代码前必须有特征测试覆盖', severity: 'must' },
|
|
124
|
+
{ category: '安全网', rule: '每次修改后必须运行全部 harness 测试', severity: 'must' },
|
|
125
|
+
{ category: '修改', rule: '每次提交只修改一处逻辑,不积累未验证变更', severity: 'should' },
|
|
126
|
+
{ category: '类型', rule: '禁止 any 类型,必须显式类型注解', severity: 'must' },
|
|
127
|
+
{ category: '错误处理', rule: 'catch 块必须有实质性处理,不得静默吞掉异常', severity: 'must' },
|
|
128
|
+
{ category: '安全', rule: '禁止硬编码密钥和密码', severity: 'must' },
|
|
129
|
+
],
|
|
130
|
+
evolution: { auto_optimize: true, optimize_interval_days: 14 },
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
];
|
|
134
|
+
export class OfficialConventionSync {
|
|
135
|
+
loader;
|
|
136
|
+
constructor(loader) {
|
|
137
|
+
this.loader = loader ?? new ConventionLoader();
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 同步官方 Convention 到 ~/.claude-forge/conventions/
|
|
141
|
+
* 版本号变更时自动更新,已存在的更高版本跳过(尊重进化器产出)
|
|
142
|
+
*/
|
|
143
|
+
sync() {
|
|
144
|
+
const report = { added: [], updated: [], skipped: [] };
|
|
145
|
+
if (!fs.existsSync(CONVENTIONS_DIR)) {
|
|
146
|
+
fs.mkdirSync(CONVENTIONS_DIR, { recursive: true });
|
|
147
|
+
}
|
|
148
|
+
for (const entry of OFFICIAL_CONVENTIONS) {
|
|
149
|
+
const filePath = path.join(CONVENTIONS_DIR, `${entry.id}.yaml`);
|
|
150
|
+
const existing = this.loader.findById(entry.id);
|
|
151
|
+
if (existing) {
|
|
152
|
+
if (this.versionGte(existing.version, entry.version)) {
|
|
153
|
+
report.skipped.push(entry.id);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
// 代码版本更高 → 覆盖更新
|
|
157
|
+
this.writeConvention(filePath, entry.data);
|
|
158
|
+
report.updated.push(entry.id);
|
|
159
|
+
logger.info(`[官方规范同步] 已更新:${entry.id} → v${entry.version}`);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// 不存在 → 新增
|
|
163
|
+
this.writeConvention(filePath, entry.data);
|
|
164
|
+
report.added.push(entry.id);
|
|
165
|
+
logger.info(`[官方规范同步] 已添加:${entry.id} v${entry.version}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (report.added.length > 0 || report.updated.length > 0) {
|
|
169
|
+
logger.info(`[官方规范同步] 完成:+${report.added.length} 更新=${report.updated.length} 跳过=${report.skipped.length}`);
|
|
170
|
+
}
|
|
171
|
+
return report;
|
|
172
|
+
}
|
|
173
|
+
/** 获取所有官方 Convention ID */
|
|
174
|
+
getOfficialIds() {
|
|
175
|
+
return OFFICIAL_CONVENTIONS.map(c => c.id);
|
|
176
|
+
}
|
|
177
|
+
writeConvention(filePath, data) {
|
|
178
|
+
const content = yaml.dump(data, { lineWidth: 120, noRefs: true });
|
|
179
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
180
|
+
}
|
|
181
|
+
/** 版本号比较:a >= b */
|
|
182
|
+
versionGte(a, b) {
|
|
183
|
+
const pa = a.split('.').map(Number);
|
|
184
|
+
const pb = b.split('.').map(Number);
|
|
185
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
186
|
+
const na = pa[i] ?? 0;
|
|
187
|
+
const nb = pb[i] ?? 0;
|
|
188
|
+
if (na > nb)
|
|
189
|
+
return true;
|
|
190
|
+
if (na < nb)
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=official-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"official-sync.js","sourceRoot":"","sources":["../../src/convention/official-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/daemon/engine-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/daemon/engine-registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,cAAc,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAAC,eAAe,CAAC,CAsC1B"}
|
|
@@ -8,6 +8,7 @@ import { initProfileManager } from './engine-registry/init-profile.js';
|
|
|
8
8
|
import { initPatternEngine } from './engine-registry/init-pattern-engine.js';
|
|
9
9
|
import { PatternEvolver } from '../pattern-engine/pattern-evolver.js';
|
|
10
10
|
import { ConventionManager } from '../convention/index.js';
|
|
11
|
+
import { OfficialConventionSync } from '../convention/official-sync.js';
|
|
11
12
|
export async function buildEngineContext(config, storage, sharedApi) {
|
|
12
13
|
const trigger = initDistillEngine(config, storage, sharedApi);
|
|
13
14
|
const resumeEngine = initResumeEngine(config, storage, sharedApi);
|
|
@@ -18,6 +19,8 @@ export async function buildEngineContext(config, storage, sharedApi) {
|
|
|
18
19
|
const profileManager = await initProfileManager();
|
|
19
20
|
const patternEngine = initPatternEngine(sharedApi, storage);
|
|
20
21
|
const conventionManager = new ConventionManager();
|
|
22
|
+
// 官方 Convention 同步(BMad、Harness Engineering 等内置规范自动安装/更新)
|
|
23
|
+
new OfficialConventionSync().sync();
|
|
21
24
|
// Pattern 自进化注入:将 PatternEvolver 注册到 SkillEvolver 的进化周期中
|
|
22
25
|
if (sharedApi) {
|
|
23
26
|
const patternEvolver = new PatternEvolver(sharedApi, storage, config.pattern_engine.evolve_min_executions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/daemon/engine-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/daemon/engine-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAcxE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,OAAsB,EACtB,SAA2B;IAE3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAElD,0DAA0D;IAC1D,IAAI,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;IAEpC,yDAAyD;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC3G,aAAa,CAAC,UAAU,EAAE,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,GAAG,GAAmB;QAC1B,OAAO;QACP,MAAM;QACN,OAAO;QACP,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;QACT,aAAa;QACb,iBAAiB;QACjB,eAAe,EAAE,IAAI,GAAG,EAAU;KACnC,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -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;AAKpD,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;AAKpD,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;IA+C7D,OAAO,CAAC,mBAAmB;CAsB5B"}
|
|
@@ -21,8 +21,9 @@ export class PreToolUseHandler extends BaseHookHandler {
|
|
|
21
21
|
// 2. Skill 推荐注入
|
|
22
22
|
const skillRec = await skillRegistry.processEvent(event);
|
|
23
23
|
if (skillRec) {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// 提取匹配的技能名列表作为日志预览(跳过标题行,提取 **name** 部分)
|
|
25
|
+
const skillNames = skillRec.match(/\*\*([^*]+)\*\*/g)?.map(s => s.replace(/\*\*/g, '')).join(', ') || '(unknown)';
|
|
26
|
+
logger.info(`[Forge:技能] 已注入推荐(触发工具:${event.tool_name}):${skillNames}`);
|
|
26
27
|
decision = this.appendContext(decision, ForgeFormatter.formatModuleNotification('skill', skillRec));
|
|
27
28
|
}
|
|
28
29
|
// 3. Pipeline 阶段指令注入
|
|
@@ -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,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,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,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzG,IAAI,QAAQ,GAAwB,IAAI,CAAC;QAEzC,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,gBAAgB;QAChB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,
|
|
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":"stop-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/stop-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,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,SAAS,CAAK;gBAEV,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"stop-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/stop-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,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,SAAS,CAAK;gBAEV,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAwH9D"}
|
|
@@ -59,10 +59,11 @@ export class StopHandler extends BaseHookHandler {
|
|
|
59
59
|
orchestration.pushNotification('[Forge] 会话蒸馏完成,decisions.md 和 timeline.md 已更新');
|
|
60
60
|
}
|
|
61
61
|
// 5b. 蒸馏完成后,异步更新 CLAUDE.md(每 5 次 Stop 触发一次,避免频繁 API 调用)
|
|
62
|
+
// 增量优化:ClaudeMdEngine.refine() 内部会检查 refine-state,不足 3 次蒸馏且无新增内容时自动跳过
|
|
62
63
|
if (event.project_path && this.stopCount % 5 === 0 && this.ctx.sharedApi) {
|
|
63
64
|
const claudeMdEngine = new ClaudeMdEngine(this.ctx.sharedApi);
|
|
64
65
|
const distillWriter = new DistillWriter();
|
|
65
|
-
const lastDecisions = distillWriter.readLastDecisions(event.project_path, 30);
|
|
66
|
+
const lastDecisions = distillWriter.readDecisionsSince(event.project_path) || distillWriter.readLastDecisions(event.project_path, 30);
|
|
66
67
|
const events = this.ctx.storage.queryEvents({ project_path: event.project_path, limit: 50 });
|
|
67
68
|
claudeMdEngine.refine(event.project_path, lastDecisions, events).then(updated => {
|
|
68
69
|
if (updated) {
|
|
@@ -83,7 +84,7 @@ export class StopHandler extends BaseHookHandler {
|
|
|
83
84
|
const recentEvents = this.ctx.storage.queryEvents({
|
|
84
85
|
project_path: event.project_path,
|
|
85
86
|
start_time: windowStart,
|
|
86
|
-
limit:
|
|
87
|
+
limit: 1000,
|
|
87
88
|
});
|
|
88
89
|
logger.info(`[Forge:文档同步] 准备同步,近 2h 事件 ${recentEvents.length} 条`);
|
|
89
90
|
const docSync = new DocSyncEngine(this.ctx.sharedApi);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/stop-handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stop-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/stop-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,11 @@ export declare class UserPromptHandler extends BaseHookHandler {
|
|
|
35
35
|
private handlePipelineReply;
|
|
36
36
|
/** 冷却检查,通过返回 true,并清理过期条目 */
|
|
37
37
|
private checkCooldown;
|
|
38
|
+
/**
|
|
39
|
+
* 构建会话上下文:最近的用户输入 + 工具调用摘要。
|
|
40
|
+
* 帮助意图引擎理解当前对话在做什么,避免孤立判断单条输入。
|
|
41
|
+
*/
|
|
42
|
+
private buildConversationHistory;
|
|
38
43
|
/** 清理超过 MAX_STATE_AGE_MS 的 Map 条目,防止内存无限增长 */
|
|
39
44
|
private evictStaleEntries;
|
|
40
45
|
private setSuggestionPending;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-prompt-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt-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;AAiBpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAA8B;IACvD;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA6B;IACnD;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IACnD,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAE1D,OAAO,CAAC,aAAa,CAA8B;gBAEvC,GAAG,EAAE,cAAc;IAK/B,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB,CAAqB;IACjD,6CAA6C;IAC7C,OAAO,CAAC,cAAc,CAA6B;IAE7C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"user-prompt-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt-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;AAiBpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAA8B;IACvD;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA6B;IACnD;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IACnD,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAE1D,OAAO,CAAC,aAAa,CAA8B;gBAEvC,GAAG,EAAE,cAAc;IAK/B,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB,CAAqB;IACjD,6CAA6C;IAC7C,OAAO,CAAC,cAAc,CAA6B;IAE7C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA6E7D;;;OAGG;YACW,mBAAmB;IAsBjC,6BAA6B;IAC7B,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAqDhC,8CAA8C;IAC9C,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,WAAW;IASnB;;;OAGG;YACW,kBAAkB;IAoChC,OAAO,CAAC,kBAAkB;IAW1B,+DAA+D;YACjD,iBAAiB;YA4BjB,iBAAiB;IA+C/B,OAAO,CAAC,oBAAoB;YAkBd,mBAAmB;IA0BjC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoC5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;YACW,uBAAuB;CA0BtC"}
|
|
@@ -68,8 +68,9 @@ export class UserPromptHandler extends BaseHookHandler {
|
|
|
68
68
|
// 2. 冷却检查
|
|
69
69
|
if (!this.checkCooldown(event.project_path))
|
|
70
70
|
return;
|
|
71
|
-
// 3.
|
|
72
|
-
const
|
|
71
|
+
// 3. 意图分析(带会话上下文)
|
|
72
|
+
const history = this.buildConversationHistory(event.session_id, event.project_path);
|
|
73
|
+
const analysis = await intentEngine.analyze(userPrompt, event.project_path, undefined, history);
|
|
73
74
|
this.logAnalysis(analysis);
|
|
74
75
|
if (analysis.searchKeywords?.length) {
|
|
75
76
|
this.ctx.skillRegistry.setIntentKeywords(analysis.searchKeywords);
|
|
@@ -131,6 +132,57 @@ export class UserPromptHandler extends BaseHookHandler {
|
|
|
131
132
|
this.lastAnalysisAt.set(projectPath, now);
|
|
132
133
|
return true;
|
|
133
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* 构建会话上下文:最近的用户输入 + 工具调用摘要。
|
|
137
|
+
* 帮助意图引擎理解当前对话在做什么,避免孤立判断单条输入。
|
|
138
|
+
*/
|
|
139
|
+
buildConversationHistory(sessionId, projectPath) {
|
|
140
|
+
try {
|
|
141
|
+
const { storage } = this.ctx;
|
|
142
|
+
// 查询最近 10 条事件(含 UserPromptSubmit 和工具调用)
|
|
143
|
+
const recentEvents = storage.queryEvents({
|
|
144
|
+
session_id: sessionId,
|
|
145
|
+
project_path: projectPath,
|
|
146
|
+
limit: 15,
|
|
147
|
+
});
|
|
148
|
+
if (recentEvents.length === 0)
|
|
149
|
+
return undefined;
|
|
150
|
+
const lines = [];
|
|
151
|
+
// 提取最近的用户输入(最多 3 条,不含当前输入)
|
|
152
|
+
const userPrompts = recentEvents
|
|
153
|
+
.filter(e => e.hook_type === 'UserPromptSubmit' && e.tool_input)
|
|
154
|
+
.slice(0, 4) // 多取一条因为第一条是当前输入
|
|
155
|
+
.slice(1) // 去掉当前输入
|
|
156
|
+
.reverse(); // 按时间正序
|
|
157
|
+
if (userPrompts.length > 0) {
|
|
158
|
+
lines.push('### 最近的用户指令');
|
|
159
|
+
for (const e of userPrompts) {
|
|
160
|
+
const prompt = e.tool_input?.user_prompt || '';
|
|
161
|
+
if (prompt) {
|
|
162
|
+
lines.push(`- ${prompt.substring(0, 150)}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// 提取最近的工具调用摘要(最多 5 条)
|
|
167
|
+
const toolEvents = recentEvents
|
|
168
|
+
.filter(e => (e.hook_type === 'PostToolUse' || e.hook_type === 'PreToolUse') && e.tool_name)
|
|
169
|
+
.slice(0, 5)
|
|
170
|
+
.reverse();
|
|
171
|
+
if (toolEvents.length > 0) {
|
|
172
|
+
lines.push('### 最近的工具调用');
|
|
173
|
+
for (const e of toolEvents) {
|
|
174
|
+
const inputStr = e.tool_input ? JSON.stringify(e.tool_input).substring(0, 100) : '';
|
|
175
|
+
lines.push(`- ${e.tool_name}: ${inputStr}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (lines.length === 0)
|
|
179
|
+
return undefined;
|
|
180
|
+
return lines.join('\n');
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
134
186
|
/** 清理超过 MAX_STATE_AGE_MS 的 Map 条目,防止内存无限增长 */
|
|
135
187
|
evictStaleEntries(now) {
|
|
136
188
|
const cutoff = now - UserPromptHandler.MAX_STATE_AGE_MS;
|
|
@@ -232,8 +284,13 @@ export class UserPromptHandler extends BaseHookHandler {
|
|
|
232
284
|
const teamContext = shouldUseTeamMode(analysis)
|
|
233
285
|
? buildTeamModeContext(analysis, event.project_path)
|
|
234
286
|
: null;
|
|
235
|
-
if (teamContext)
|
|
236
|
-
logger.info(
|
|
287
|
+
if (teamContext) {
|
|
288
|
+
logger.info(`[Forge:团队] 已启用 Team 模式(3 个并行 Agent):\n` +
|
|
289
|
+
` Agent A — 需求分析:识别功能点、边界条件、验收标准\n` +
|
|
290
|
+
` Agent B — 代码库搜索:定位相关文件、测试、可复用组件\n` +
|
|
291
|
+
` Agent C — 方案规划:文件改动清单、实现步骤、技术决策\n` +
|
|
292
|
+
` 预估涉及 ${analysis.estimatedFiles ?? '多个'} 个文件 | 需求:${analysis.requirement.substring(0, 80)}`);
|
|
293
|
+
}
|
|
237
294
|
const conventionPrompt = this.ctx.conventionManager.getActivePrompt(event.project_path) ?? undefined;
|
|
238
295
|
const context = ForgeFormatter.wrapInQuote(this.budgetContext({ content: conventionPrompt, priority: 0 }, { content: autoMsg, priority: 1 }, { content: teamContext ?? undefined, priority: 2 }, { content: this.readDecisionsContext(analysis.requirement, event.project_path), priority: 3 }));
|
|
239
296
|
if (analysis.clarifyQuestions?.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-prompt-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user-prompt-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AA4BA,wBAAsB,WAAW,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkS5E"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import { SocketServer } from './server.js';
|
|
5
|
-
import { writePidFile, removePidFile, cleanSocket, getSocketPath, isForgeManaged, } from './lifecycle.js';
|
|
5
|
+
import { writePidFile, removePidFile, cleanSocket, getSocketPath, isForgeManaged, writeAuthToken, removeAuthToken, } from './lifecycle.js';
|
|
6
6
|
import { logger, setLogFile, setLogLevel, setEventsFile, logEvent, LogLevel } from '../utils/logger.js';
|
|
7
7
|
import { SQLiteStorage } from '../storage/sqlite.js';
|
|
8
8
|
import { ConfigManager } from '../config/index.js';
|
|
@@ -27,6 +27,8 @@ export async function startDaemon(foreground = false) {
|
|
|
27
27
|
logger.info('Claude Forge 守护进程启动中...');
|
|
28
28
|
cleanSocket();
|
|
29
29
|
writePidFile();
|
|
30
|
+
const authToken = writeAuthToken();
|
|
31
|
+
logger.info('[安全] Auth token 已生成');
|
|
30
32
|
// ── Storage ────────────────────────────────────────────────────────────────
|
|
31
33
|
const dbPath = config.storage.path.replace('~', os.homedir());
|
|
32
34
|
const storage = new SQLiteStorage(dbPath);
|
|
@@ -143,6 +145,13 @@ export async function startDaemon(foreground = false) {
|
|
|
143
145
|
}
|
|
144
146
|
storage.writeEvent(event);
|
|
145
147
|
logEvent(event.project_path, 'info', event.hook_type, `tool=${event.tool_name || 'N/A'} session=${event.session_id}`);
|
|
148
|
+
// 关键事件在 daemon.log 中也输出,便于排查
|
|
149
|
+
if (event.hook_type === 'UserPromptSubmit' || event.hook_type === 'Stop') {
|
|
150
|
+
logger.info(`[事件] ${event.hook_type} | project=${event.project_path}`);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
logger.debug(`[事件] ${event.hook_type} | tool=${event.tool_name || 'N/A'} | project=${event.project_path}`);
|
|
154
|
+
}
|
|
146
155
|
if (trigger) {
|
|
147
156
|
trigger.trackProject(event.session_id, event.project_path);
|
|
148
157
|
}
|
|
@@ -174,13 +183,19 @@ export async function startDaemon(foreground = false) {
|
|
|
174
183
|
};
|
|
175
184
|
// ── Socket server ──────────────────────────────────────────────────────────
|
|
176
185
|
const socketPath = getSocketPath();
|
|
177
|
-
const server = new SocketServer(socketPath, handleEvent);
|
|
186
|
+
const server = new SocketServer(socketPath, handleEvent, authToken);
|
|
178
187
|
// ── 技能目录文件监听(跨平台:逐目录注册,避免 Linux 下 recursive 无效)──────
|
|
179
188
|
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
180
189
|
const skillsWatchers = new Map();
|
|
181
190
|
let skillsDebounceTimer = null;
|
|
182
191
|
const onSkillChange = (eventType, filename) => {
|
|
183
|
-
|
|
192
|
+
// 过滤非技能文件:只关注 .md 文件变更和目录增删(rename),忽略 .DS_Store 等噪音文件
|
|
193
|
+
if (!filename)
|
|
194
|
+
return;
|
|
195
|
+
const ignored = ['.DS_Store', 'Thumbs.db', '.gitkeep', 'desktop.ini'];
|
|
196
|
+
if (ignored.includes(filename))
|
|
197
|
+
return;
|
|
198
|
+
if (!filename.endsWith('.md') && eventType !== 'rename')
|
|
184
199
|
return;
|
|
185
200
|
if (skillsDebounceTimer)
|
|
186
201
|
clearTimeout(skillsDebounceTimer);
|
|
@@ -264,6 +279,7 @@ export async function startDaemon(foreground = false) {
|
|
|
264
279
|
storage.close();
|
|
265
280
|
removePidFile();
|
|
266
281
|
cleanSocket();
|
|
282
|
+
removeAuthToken();
|
|
267
283
|
clearTimeout(forceExit);
|
|
268
284
|
process.exit(0);
|
|
269
285
|
};
|