bmall-mcp 1.8.6 → 1.8.7
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 +5 -0
- package/dist/tools/requirements/requirement-processor.d.ts.map +1 -1
- package/dist/tools/requirements/requirement-processor.js +40 -21
- package/dist/tools/requirements/requirement-processor.js.map +1 -1
- package/package.json +1 -1
- package/src/tools/requirements/requirement-processor.ts +44 -21
package/README.md
CHANGED
|
@@ -204,6 +204,11 @@ src/
|
|
|
204
204
|
|
|
205
205
|
## Changelog
|
|
206
206
|
|
|
207
|
+
### v1.8.7 (2026-03-16)
|
|
208
|
+
- ✅ 优化PDF处理指令:明确指示AI调用mcp_execute_tool工具
|
|
209
|
+
- ✅ 完善PDF读取提示:提供完整的工具调用参数和格式
|
|
210
|
+
- ✅ 确保AI理解需要调用MCP工具并保存结果
|
|
211
|
+
|
|
207
212
|
### v1.8.6 (2026-03-16)
|
|
208
213
|
- ✅ 修复 TypeScript 编译错误:删除多余的 `}` 语法错误
|
|
209
214
|
- ✅ 修复设计稿处理逻辑中的代码结构问题
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement-processor.d.ts","sourceRoot":"","sources":["../../../src/tools/requirements/requirement-processor.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAElG;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;QAClD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"requirement-processor.d.ts","sourceRoot":"","sources":["../../../src/tools/requirements/requirement-processor.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAElG;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;QAClD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,aAAa,CAAC,CA4NxB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB"}
|
|
@@ -108,17 +108,18 @@ export async function processRequirementDocument(requirementSource, featureName,
|
|
|
108
108
|
success: false,
|
|
109
109
|
message: `✅ PDF 的两个中间文件已存在,现在合并它们
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
- 读取 \`${textPath}\` 的内容
|
|
113
|
-
- 读取 \`${ocrPath}\` 的内容
|
|
114
|
-
- 将两者合并保存到 \`${outputMdPath}\`
|
|
111
|
+
请执行以下操作:
|
|
115
112
|
|
|
116
|
-
|
|
113
|
+
1. 读取 \`${textPath}\` 的内容
|
|
114
|
+
2. 读取 \`${ocrPath}\` 的内容
|
|
115
|
+
3. 将两者合并保存到 \`${outputMdPath}\`
|
|
116
|
+
|
|
117
|
+
4. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
117
118
|
needsAction: {
|
|
118
119
|
type: "read_pdf",
|
|
119
120
|
instruction: `合并两个PDF读取结果:
|
|
120
|
-
1.
|
|
121
|
-
2.
|
|
121
|
+
1. 读取文件 ${textPath} 的内容
|
|
122
|
+
2. 读取文件 ${ocrPath} 的内容
|
|
122
123
|
3. 将两者合并保存到 ${outputMdPath}
|
|
123
124
|
4. 保存文件
|
|
124
125
|
5. 重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
@@ -133,18 +134,24 @@ export async function processRequirementDocument(requirementSource, featureName,
|
|
|
133
134
|
debugLog(`发现text文件,准备OCR`);
|
|
134
135
|
return {
|
|
135
136
|
success: false,
|
|
136
|
-
message: `✅ PDF
|
|
137
|
+
message: `✅ PDF 文本层已提取,现在使用 OCR 提取图片和表格
|
|
138
|
+
|
|
139
|
+
请执行以下操作:
|
|
140
|
+
|
|
141
|
+
1. 调用 \`mcp_execute_tool\` 工具:
|
|
142
|
+
- server_name: "pdf-reader"
|
|
143
|
+
- tool_name: "read_by_ocr"
|
|
144
|
+
- arguments: { "file_path": "${filePath}", "language": "${language}", "dpi": 300 }
|
|
137
145
|
|
|
138
|
-
|
|
139
|
-
- 优势:可提取图片、表格、扫描件等非文本内容
|
|
140
|
-
- 语言:\`${language}\`(中文文档使用 \`chi_sim\`,英文使用 \`eng\`)
|
|
141
|
-
- DPI:\`300\`(默认值)
|
|
142
|
-
- 保存到:\`${ocrPath}\`
|
|
146
|
+
2. 将读取到的内容保存到文件:\`${ocrPath}\`
|
|
143
147
|
|
|
144
|
-
|
|
148
|
+
3. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
145
149
|
needsAction: {
|
|
146
150
|
type: "read_pdf",
|
|
147
|
-
instruction:
|
|
151
|
+
instruction: `必须先调用 pdf-reader MCP 工具进行 OCR:
|
|
152
|
+
1. 调用 mcp_execute_tool,使用 pdf-reader 的 read_by_ocr 工具,参数为 { "file_path": "${filePath}", "language": "${language}", "dpi": 300 }
|
|
153
|
+
2. 将返回的内容保存到文件:${ocrPath}
|
|
154
|
+
3. 保存完成后重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
148
155
|
},
|
|
149
156
|
};
|
|
150
157
|
}
|
|
@@ -152,18 +159,30 @@ export async function processRequirementDocument(requirementSource, featureName,
|
|
|
152
159
|
catch {
|
|
153
160
|
// 还没有任何文件,先提取文本
|
|
154
161
|
debugLog(`未发现中间文件,先提取文本层`);
|
|
162
|
+
// 创建输出目录
|
|
163
|
+
const outputDir = path.dirname(textPath);
|
|
164
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
165
|
+
debugLog(`创建目录`, { outputDir });
|
|
155
166
|
return {
|
|
156
167
|
success: false,
|
|
157
|
-
message: `📄 检测到 PDF
|
|
168
|
+
message: `📄 检测到 PDF 文件,需要先提取文本层
|
|
169
|
+
|
|
170
|
+
请执行以下操作:
|
|
171
|
+
|
|
172
|
+
1. 调用 \`mcp_execute_tool\` 工具:
|
|
173
|
+
- server_name: "pdf-reader"
|
|
174
|
+
- tool_name: "read_pdf_text"
|
|
175
|
+
- arguments: { "file_path": "${filePath}" }
|
|
158
176
|
|
|
159
|
-
|
|
160
|
-
- 优势:快速、准确、保留原始格式
|
|
161
|
-
- 保存到:\`${textPath}\`
|
|
177
|
+
2. 将读取到的内容保存到文件:\`${textPath}\`
|
|
162
178
|
|
|
163
|
-
|
|
179
|
+
3. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
164
180
|
needsAction: {
|
|
165
181
|
type: "read_pdf",
|
|
166
|
-
instruction:
|
|
182
|
+
instruction: `必须先调用 pdf-reader MCP 工具读取 PDF:
|
|
183
|
+
1. 调用 mcp_execute_tool,使用 pdf-reader 的 read_pdf_text 工具,参数为 { "file_path": "${filePath}" }
|
|
184
|
+
2. 将返回的内容保存到文件:${textPath}
|
|
185
|
+
3. 保存完成后重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
167
186
|
},
|
|
168
187
|
};
|
|
169
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement-processor.js","sourceRoot":"","sources":["../../../src/tools/requirements/requirement-processor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"requirement-processor.js","sourceRoot":"","sources":["../../../src/tools/requirements/requirement-processor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -133,21 +133,23 @@ export async function processRequirementDocument(
|
|
|
133
133
|
await fs.access(ocrPath);
|
|
134
134
|
// 两个文件都存在,可以合并
|
|
135
135
|
debugLog(`发现text和ocr文件,准备合并`);
|
|
136
|
+
|
|
136
137
|
return {
|
|
137
138
|
success: false,
|
|
138
139
|
message: `✅ PDF 的两个中间文件已存在,现在合并它们
|
|
139
140
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
请执行以下操作:
|
|
142
|
+
|
|
143
|
+
1. 读取 \`${textPath}\` 的内容
|
|
144
|
+
2. 读取 \`${ocrPath}\` 的内容
|
|
145
|
+
3. 将两者合并保存到 \`${outputMdPath}\`
|
|
144
146
|
|
|
145
|
-
|
|
147
|
+
4. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
146
148
|
needsAction: {
|
|
147
149
|
type: "read_pdf",
|
|
148
150
|
instruction: `合并两个PDF读取结果:
|
|
149
|
-
1.
|
|
150
|
-
2.
|
|
151
|
+
1. 读取文件 ${textPath} 的内容
|
|
152
|
+
2. 读取文件 ${ocrPath} 的内容
|
|
151
153
|
3. 将两者合并保存到 ${outputMdPath}
|
|
152
154
|
4. 保存文件
|
|
153
155
|
5. 重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
@@ -160,38 +162,59 @@ export async function processRequirementDocument(
|
|
|
160
162
|
const language = isChinese ? 'chi_sim' : 'eng';
|
|
161
163
|
|
|
162
164
|
debugLog(`发现text文件,准备OCR`);
|
|
165
|
+
|
|
163
166
|
return {
|
|
164
167
|
success: false,
|
|
165
|
-
message: `✅ PDF
|
|
168
|
+
message: `✅ PDF 文本层已提取,现在使用 OCR 提取图片和表格
|
|
169
|
+
|
|
170
|
+
请执行以下操作:
|
|
166
171
|
|
|
167
|
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
- 保存到:\`${ocrPath}\`
|
|
172
|
+
1. 调用 \`mcp_execute_tool\` 工具:
|
|
173
|
+
- server_name: "pdf-reader"
|
|
174
|
+
- tool_name: "read_by_ocr"
|
|
175
|
+
- arguments: { "file_path": "${filePath}", "language": "${language}", "dpi": 300 }
|
|
172
176
|
|
|
173
|
-
|
|
177
|
+
2. 将读取到的内容保存到文件:\`${ocrPath}\`
|
|
178
|
+
|
|
179
|
+
3. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
174
180
|
needsAction: {
|
|
175
181
|
type: "read_pdf",
|
|
176
|
-
instruction:
|
|
182
|
+
instruction: `必须先调用 pdf-reader MCP 工具进行 OCR:
|
|
183
|
+
1. 调用 mcp_execute_tool,使用 pdf-reader 的 read_by_ocr 工具,参数为 { "file_path": "${filePath}", "language": "${language}", "dpi": 300 }
|
|
184
|
+
2. 将返回的内容保存到文件:${ocrPath}
|
|
185
|
+
3. 保存完成后重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
177
186
|
},
|
|
178
187
|
};
|
|
179
188
|
}
|
|
180
189
|
} catch {
|
|
181
190
|
// 还没有任何文件,先提取文本
|
|
182
191
|
debugLog(`未发现中间文件,先提取文本层`);
|
|
192
|
+
|
|
193
|
+
// 创建输出目录
|
|
194
|
+
const outputDir = path.dirname(textPath);
|
|
195
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
196
|
+
debugLog(`创建目录`, { outputDir });
|
|
197
|
+
|
|
183
198
|
return {
|
|
184
199
|
success: false,
|
|
185
|
-
message: `📄 检测到 PDF
|
|
200
|
+
message: `📄 检测到 PDF 文件,需要先提取文本层
|
|
201
|
+
|
|
202
|
+
请执行以下操作:
|
|
203
|
+
|
|
204
|
+
1. 调用 \`mcp_execute_tool\` 工具:
|
|
205
|
+
- server_name: "pdf-reader"
|
|
206
|
+
- tool_name: "read_pdf_text"
|
|
207
|
+
- arguments: { "file_path": "${filePath}" }
|
|
186
208
|
|
|
187
|
-
|
|
188
|
-
- 优势:快速、准确、保留原始格式
|
|
189
|
-
- 保存到:\`${textPath}\`
|
|
209
|
+
2. 将读取到的内容保存到文件:\`${textPath}\`
|
|
190
210
|
|
|
191
|
-
|
|
211
|
+
3. 保存完成后,重新调用 \`generate_requirements\` 工具`,
|
|
192
212
|
needsAction: {
|
|
193
213
|
type: "read_pdf",
|
|
194
|
-
instruction:
|
|
214
|
+
instruction: `必须先调用 pdf-reader MCP 工具读取 PDF:
|
|
215
|
+
1. 调用 mcp_execute_tool,使用 pdf-reader 的 read_pdf_text 工具,参数为 { "file_path": "${filePath}" }
|
|
216
|
+
2. 将返回的内容保存到文件:${textPath}
|
|
217
|
+
3. 保存完成后重新调用 generate_requirements 工具(不要把文件内容放在上下文中)`,
|
|
195
218
|
},
|
|
196
219
|
};
|
|
197
220
|
}
|