@winspan/claude-forge 1.3.3 → 1.3.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.
@@ -15,7 +15,14 @@ export declare class DocSyncEngine {
15
15
  * 主入口:根据本次会话事件,找出受影响的文档并更新
16
16
  */
17
17
  sync(sessionId: string, projectPath: string, events: ForgeEvent[]): Promise<void>;
18
- private detectAndGeneratePatches;
18
+ /**
19
+ * 第一阶段:轻量判断哪些文档受影响(只传文件名和改动摘要)
20
+ */
21
+ private detectImpactedDocs;
22
+ /**
23
+ * 第二阶段:针对单个文档生成 patch(逐个处理,避免 prompt 过长)
24
+ */
25
+ private generatePatchesForDoc;
19
26
  private applyPatches;
20
27
  }
21
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-sync/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAS1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAUlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB7D;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU;IAE5C;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA8BzE,wBAAwB;IA2GtC,OAAO,CAAC,YAAY;CAoCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-sync/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAUlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB7D;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU;IAE5C;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvF;;OAEG;YACW,kBAAkB;IAkDhC;;OAEG;YACW,qBAAqB;IA4EnC,OAAO,CAAC,YAAY;CAoCrB"}
@@ -1,10 +1,13 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import { logger } from '../utils/logger.js';
4
+ import { truncateHead } from '../utils/truncate.js';
4
5
  // 写操作工具名
5
6
  const WRITE_TOOLS = new Set(['Write', 'Edit', 'MultiEdit', 'NotebookEdit']);
6
7
  // 扫描时排除的目录
7
8
  const EXCLUDE_DIRS = new Set(['node_modules', '.git', 'dist', 'build', '.claude-forge', 'coverage']);
9
+ // 单个文档内容最大字符数(避免超长文档撑爆 prompt)
10
+ const MAX_DOC_CHARS = 8000;
8
11
  /**
9
12
  * 从会话事件中提取本次被修改的文件路径(去重)
10
13
  */
@@ -70,40 +73,93 @@ export class DocSyncEngine {
70
73
  return;
71
74
  }
72
75
  logger.info(`[Forge:文档同步] 本次改动文件 ${changedFiles.length} 个,扫描到文档 ${allDocs.length} 个`);
73
- // 一次 AI 调用:同时判断受影响文档 + 生成各文档的行级补丁
74
- const updates = await this.detectAndGeneratePatches(changedFiles, allDocs, projectPath);
75
- if (updates.length === 0) {
76
+ // 第一阶段:先轻量判断哪些文档受影响(不传全文)
77
+ const impactedDocs = await this.detectImpactedDocs(changedFiles, allDocs, projectPath);
78
+ if (impactedDocs.length === 0) {
76
79
  logger.info('[Forge:文档同步] AI 判断无文档需要更新');
77
80
  return;
78
81
  }
79
- logger.info(`[Forge:文档同步] 受影响文档 ${updates.length} 个:${updates.map(u => path.relative(projectPath, u.docPath)).join(', ')}`);
80
- // 应用补丁
81
- for (const { docPath, patches } of updates) {
82
- this.applyPatches(docPath, patches, projectPath);
82
+ logger.info(`[Forge:文档同步] 受影响文档 ${impactedDocs.length} 个:${impactedDocs.map(f => path.relative(projectPath, f)).join(', ')}`);
83
+ // 第二阶段:逐个文档生成 patch,避免单次 prompt 过长
84
+ for (const docPath of impactedDocs) {
85
+ const patches = await this.generatePatchesForDoc(changedFiles, docPath, projectPath);
86
+ if (patches.length > 0) {
87
+ this.applyPatches(docPath, patches, projectPath);
88
+ }
83
89
  }
84
90
  }
85
- async detectAndGeneratePatches(changedFiles, allDocs, projectPath) {
91
+ /**
92
+ * 第一阶段:轻量判断哪些文档受影响(只传文件名和改动摘要)
93
+ */
94
+ async detectImpactedDocs(changedFiles, allDocs, projectPath) {
86
95
  const relChanged = changedFiles.map(f => path.relative(projectPath, f));
87
96
  const relDocs = allDocs.map(f => path.relative(projectPath, f));
88
- // 读取改动文件内容(截断避免 prompt 过长)
89
97
  const changedSummaries = changedFiles.map(f => {
90
98
  try {
91
- const content = fs.readFileSync(f, 'utf-8').slice(0, 500);
99
+ const content = fs.readFileSync(f, 'utf-8').slice(0, 300);
92
100
  return `### ${path.relative(projectPath, f)}\n${content}`;
93
101
  }
94
102
  catch {
95
103
  return `### ${path.relative(projectPath, f)}\n(文件不存在或已删除)`;
96
104
  }
97
105
  }).join('\n\n');
98
- // 读取所有文档当前内容
99
- const docContents = allDocs.map(f => {
106
+ const prompt = `你是一个代码项目的文档维护助手。
107
+
108
+ 本次会话修改了以下文件:
109
+ ${relChanged.map(f => `- ${f}`).join('\n')}
110
+
111
+ 改动文件内容摘要:
112
+ ${changedSummaries}
113
+
114
+ 项目中存在以下文档:
115
+ ${relDocs.map(f => `- ${f}`).join('\n')}
116
+
117
+ 请判断哪些文档因上述改动需要更新。
118
+
119
+ 只返回 JSON 数组,格式如下:
120
+ ["docs/plan.md", "README.md"]
121
+
122
+ 规则:
123
+ - 只返回需要更新的文档相对路径
124
+ - 没有需要更新的文档则返回空数组 []
125
+ - 只返回 JSON,不要代码块,不要解释`;
126
+ try {
127
+ const raw = await this.api.complete(prompt, 'doc-sync', { retries: 1, timeoutMs: 60_000 });
128
+ const jsonMatch = raw.match(/\[[\s\S]*\]/);
129
+ if (!jsonMatch)
130
+ return [];
131
+ const parsed = JSON.parse(jsonMatch[0]);
132
+ return parsed.map(rel => path.join(projectPath, rel)).filter(full => allDocs.includes(full));
133
+ }
134
+ catch (err) {
135
+ logger.warn(`[Forge:文档同步] 第一阶段 AI 调用失败:${err}`);
136
+ return [];
137
+ }
138
+ }
139
+ /**
140
+ * 第二阶段:针对单个文档生成 patch(逐个处理,避免 prompt 过长)
141
+ */
142
+ async generatePatchesForDoc(changedFiles, docPath, projectPath) {
143
+ const relChanged = changedFiles.map(f => path.relative(projectPath, f));
144
+ const relDoc = path.relative(projectPath, docPath);
145
+ const changedSummaries = changedFiles.map(f => {
100
146
  try {
101
- return { rel: path.relative(projectPath, f), content: fs.readFileSync(f, 'utf-8') };
147
+ const content = fs.readFileSync(f, 'utf-8').slice(0, 500);
148
+ return `### ${path.relative(projectPath, f)}\n${content}`;
102
149
  }
103
150
  catch {
104
- return null;
151
+ return `### ${path.relative(projectPath, f)}\n(文件不存在或已删除)`;
105
152
  }
106
- }).filter((d) => d !== null);
153
+ }).join('\n\n');
154
+ let docContent;
155
+ try {
156
+ const raw = fs.readFileSync(docPath, 'utf-8');
157
+ docContent = truncateHead(raw, MAX_DOC_CHARS);
158
+ }
159
+ catch {
160
+ logger.warn(`[Forge:文档同步] 读取文档失败:${relDoc}`);
161
+ return [];
162
+ }
107
163
  const prompt = `你是一个代码项目的文档维护助手。
108
164
 
109
165
  本次会话修改了以下文件:
@@ -112,73 +168,44 @@ ${relChanged.map(f => `- ${f}`).join('\n')}
112
168
  改动文件内容摘要:
113
169
  ${changedSummaries}
114
170
 
115
- 项目中存在以下文档:
116
- ${relDocs.map(f => `- ${f}`).join('\n')}
117
-
118
- 各文档当前内容:
119
- ${docContents.map(d => `=== ${d.rel} ===\n${d.content}`).join('\n\n')}
171
+ 文档 ${relDoc} 当前内容:
172
+ ${docContent}
120
173
 
121
- 请:
122
- 1. 判断哪些文档因上述改动需要更新
123
- 2. 对每个需要更新的文档,生成行级补丁(精确整行匹配)
174
+ 请生成该文档的行级补丁(精确整行匹配)。
124
175
 
125
176
  只返回 JSON,格式如下:
126
177
  [
127
- {
128
- "doc": "相对路径",
129
- "patches": [{"old":"原始行(精确匹配整行)","new":"替换后的行"}]
130
- }
178
+ {"old":"原始行(精确匹配整行)","new":"替换后的行"}
131
179
  ]
132
180
 
133
181
  规则:
134
- - 将未完成条目([ ])标记为已完成([x]),行末补充日期(如 [x] 2026-04-16
182
+ - 将未完成条目([ ])标记为已完成([x]),行末补充日期(如 [x] 2026-04-18
135
183
  - 若功能被废弃,行末标注(已废弃)
136
184
  - old 必须是文档中存在的完整行,不能是部分内容
137
- - 没有需要更新的文档则返回空数组 []
185
+ - 没有需要更新则返回空数组 []
138
186
  - 只返回 JSON,不要代码块,不要解释`;
139
- let raw;
140
- try {
141
- raw = await this.api.complete(prompt, 'doc-sync', { retries: 1, timeoutMs: 90_000 });
142
- }
143
- catch (err) {
144
- logger.warn(`[Forge:文档同步] AI 调用失败:${err}`);
145
- return [];
146
- }
147
187
  try {
148
- // 1. 提取代码块中的内容
149
- const fenceMatch = raw.match(/```(?:json)?\s*([\s\S]*?)```/);
150
- let jsonStr = fenceMatch ? fenceMatch[1].trim() : raw.trim();
151
- // 2. 提取 JSON 数组(贪婪匹配,找最外层的 [])
152
- const jsonMatch = jsonStr.match(/\[[\s\S]*\]/);
153
- if (!jsonMatch) {
154
- logger.info('[Forge:文档同步] AI 判断无文档需要更新');
188
+ const raw = await this.api.complete(prompt, 'doc-sync', { retries: 1, timeoutMs: 60_000 });
189
+ const jsonMatch = raw.match(/\[[\s\S]*\]/);
190
+ if (!jsonMatch)
155
191
  return [];
156
- }
157
- // 3. 清理可能的非 JSON 字符(如注释、尾随文本)
158
192
  let jsonContent = jsonMatch[0];
159
- // 4. 尝试解析,失败时尝试修复常见问题
160
193
  let parsed;
161
194
  try {
162
195
  parsed = JSON.parse(jsonContent);
163
196
  }
164
- catch (parseErr) {
165
- // 尝试修复:移除尾随逗号、注释等
197
+ catch {
198
+ // 尝试修复:移除尾随逗号、注释
166
199
  jsonContent = jsonContent
167
- .replace(/,\s*([}\]])/g, '$1') // 移除尾随逗号
168
- .replace(/\/\/.*$/gm, '') // 移除单行注释
169
- .replace(/\/\*[\s\S]*?\*\//g, ''); // 移除多行注释
200
+ .replace(/,\s*([}\]])/g, '$1')
201
+ .replace(/\/\/.*$/gm, '')
202
+ .replace(/\/\*[\s\S]*?\*\//g, '');
170
203
  parsed = JSON.parse(jsonContent);
171
204
  }
172
- return parsed
173
- .filter(u => u.doc && Array.isArray(u.patches) && u.patches.length > 0)
174
- .map(u => ({
175
- docPath: path.join(projectPath, u.doc),
176
- patches: u.patches,
177
- }))
178
- .filter(u => allDocs.includes(u.docPath));
205
+ return parsed.filter(p => p.old && p.new);
179
206
  }
180
207
  catch (err) {
181
- logger.warn(`[Forge:文档同步] AI 响应解析失败:${err}`);
208
+ logger.warn(`[Forge:文档同步] 第二阶段 AI 调用失败(${relDoc}):${err}`);
182
209
  return [];
183
210
  }
184
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-sync/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-sync/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winspan/claude-forge",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "SDLC intelligent orchestration engine for Claude Code",
5
5
  "main": "dist/cli/index.js",
6
6
  "type": "module",