bmall-mcp 1.2.8 → 1.3.1
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 +37 -0
- package/dist/index.js +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +16 -0
- package/dist/server/handlers.js.map +1 -1
- package/dist/server/tools.d.ts +38 -0
- package/dist/server/tools.d.ts.map +1 -1
- package/dist/server/tools.js +18 -0
- package/dist/server/tools.js.map +1 -1
- package/dist/tools/appfreeze/harmony.d.ts +11 -0
- package/dist/tools/appfreeze/harmony.d.ts.map +1 -0
- package/dist/tools/appfreeze/harmony.js +80 -0
- package/dist/tools/appfreeze/harmony.js.map +1 -0
- package/dist/tools/appfreeze/harmonyos-appfreeze-guide.md +543 -0
- package/dist/tools/appfreeze/index.d.ts +13 -0
- package/dist/tools/appfreeze/index.d.ts.map +1 -0
- package/dist/tools/appfreeze/index.js +76 -0
- package/dist/tools/appfreeze/index.js.map +1 -0
- package/package.json +3 -2
- package/src/index.ts +1 -1
- package/src/server/handlers.ts +16 -0
- package/src/server/tools.ts +18 -0
- package/src/tools/appfreeze/harmony.ts +86 -0
- package/src/tools/appfreeze/harmonyos-appfreeze-guide.md +543 -0
- package/src/tools/appfreeze/index.ts +86 -0
- package/dist/tools/gitPrompt.d.ts +0 -6
- package/dist/tools/gitPrompt.d.ts.map +0 -1
- package/dist/tools/gitPrompt.js +0 -53
- package/dist/tools/gitPrompt.js.map +0 -1
- package/dist/tools/mta/implementationPromptIOS.d.ts +0 -1
- package/dist/tools/mta/implementationPromptIOS.d.ts.map +0 -1
- package/dist/tools/mta/implementationPromptIOS.js +0 -2
- package/dist/tools/mta/implementationPromptIOS.js.map +0 -1
- package/dist/tools/mta/utils.d.ts +0 -5
- package/dist/tools/mta/utils.d.ts.map +0 -1
- package/dist/tools/mta/utils.js +0 -5
- package/dist/tools/mta/utils.js.map +0 -1
- package/dist/tools/mtaImplementationPrompt.d.ts +0 -6
- package/dist/tools/mtaImplementationPrompt.d.ts.map +0 -1
- package/dist/tools/mtaImplementationPrompt.js +0 -6
- package/dist/tools/mtaImplementationPrompt.js.map +0 -1
- package/dist/tools/mtaIntegrationPrompt.d.ts +0 -6
- package/dist/tools/mtaIntegrationPrompt.d.ts.map +0 -1
- package/dist/tools/mtaIntegrationPrompt.js +0 -6
- package/dist/tools/mtaIntegrationPrompt.js.map +0 -1
- package/dist/tools/mtaRead.d.ts +0 -6
- package/dist/tools/mtaRead.d.ts.map +0 -1
- package/dist/tools/mtaRead.js +0 -98
- package/dist/tools/mtaRead.js.map +0 -1
- package/dist/tools/mtaReadPrompt.d.ts +0 -6
- package/dist/tools/mtaReadPrompt.d.ts.map +0 -1
- package/dist/tools/mtaReadPrompt.js +0 -93
- package/dist/tools/mtaReadPrompt.js.map +0 -1
- package/dist/tools/pull.d.ts +0 -2
- package/dist/tools/pull.d.ts.map +0 -1
- package/dist/tools/pull.js +0 -43
- package/dist/tools/pull.js.map +0 -1
- package/dist/tools/push.d.ts +0 -2
- package/dist/tools/push.d.ts.map +0 -1
- package/dist/tools/push.js +0 -93
- package/dist/tools/push.js.map +0 -1
- package/dist/tools/sync.d.ts +0 -2
- package/dist/tools/sync.d.ts.map +0 -1
- package/dist/tools/sync.js +0 -287
- package/dist/tools/sync.js.map +0 -1
- package/dist/tools/utils.d.ts +0 -11
- package/dist/tools/utils.d.ts.map +0 -1
- package/dist/tools/utils.js +0 -144
- package/dist/tools/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -50,6 +50,7 @@ npx -y bmall-mcp
|
|
|
50
50
|
| `mta_read` | 从流式平台提取埋点需求 | `提取埋点需求 https://stream.jd.com/ddrx/#/requirement/29582` |
|
|
51
51
|
| `mta_implementation` | 生成埋点管理类代码 | `生成埋点代码 34747` |
|
|
52
52
|
| `mta_integration` | 埋点业务集成指导 | `集成埋点 34747` |
|
|
53
|
+
| `analyze_appfreeze` | 鸿蒙AppFreeze分析 | `分析AppFreeze日志 /path/to/freeze.log` |
|
|
53
54
|
|
|
54
55
|
### 工具详情
|
|
55
56
|
|
|
@@ -113,6 +114,31 @@ npx -y bmall-mcp
|
|
|
113
114
|
- `businessCodePath`: 业务代码路径(可选)
|
|
114
115
|
</details>
|
|
115
116
|
|
|
117
|
+
<details>
|
|
118
|
+
<summary><b>analyze_appfreeze</b> - 鸿蒙AppFreeze分析</summary>
|
|
119
|
+
|
|
120
|
+
根据AppFreeze日志文件生成详细的分析提示词,指导AI按照标准流程诊断应用冻屏问题。
|
|
121
|
+
|
|
122
|
+
**参数:**
|
|
123
|
+
- `logFilePath`: AppFreeze日志文件路径(必填),如:/path/to/appfreeze.log
|
|
124
|
+
- `outputPath`: 分析报告输出路径(可选,默认为当前目录)
|
|
125
|
+
|
|
126
|
+
**支持的项目类型:**
|
|
127
|
+
- HarmonyOS (鸿蒙)
|
|
128
|
+
|
|
129
|
+
**分析内容:**
|
|
130
|
+
- 提取基本信息(Pid、Reason、Fault time、Foreground)
|
|
131
|
+
- 分析freeze栈(对比3S和6S栈)
|
|
132
|
+
- 分析EventHandler信息
|
|
133
|
+
- 分析Binder信息
|
|
134
|
+
- 结合trace和HiLog
|
|
135
|
+
- 问题分类(应用/调度/系统库/IO)
|
|
136
|
+
- 提供针对性解决方案
|
|
137
|
+
|
|
138
|
+
**参考文档:**
|
|
139
|
+
- 项目根目录下的 `harmonyos-appfreeze-guide.md` 包含完整的分析规则和典型案例
|
|
140
|
+
</details>
|
|
141
|
+
|
|
116
142
|
## 项目架构
|
|
117
143
|
|
|
118
144
|
```
|
|
@@ -122,6 +148,9 @@ src/
|
|
|
122
148
|
│ ├── tools.ts # Tool 定义
|
|
123
149
|
│ └── handlers.ts # Tool 处理器
|
|
124
150
|
├── tools/
|
|
151
|
+
│ ├── appfreeze/
|
|
152
|
+
│ │ ├── index.ts # AppFreeze 分析入口(端识别)
|
|
153
|
+
│ │ └── harmony.ts # 鸿蒙 AppFreeze 分析
|
|
125
154
|
│ ├── git/
|
|
126
155
|
│ │ └── commit.ts # Git 提交规范
|
|
127
156
|
│ ├── mta/
|
|
@@ -141,6 +170,14 @@ src/
|
|
|
141
170
|
```
|
|
142
171
|
|
|
143
172
|
## Changelog
|
|
173
|
+
### v1.3.1 (2026-01-26)
|
|
174
|
+
- ✅ 去除dist中多余的文件
|
|
175
|
+
|
|
176
|
+
### v1.3.0 (2026-01-21)
|
|
177
|
+
- ✅ 新增 `analyze_appfreeze` 鸿蒙AppFreeze分析工具
|
|
178
|
+
- ✅ 支持端识别,根据项目类型返回不同的分析提示词
|
|
179
|
+
- ✅ 完整的AppFreeze分析流程(freeze栈、EventHandler、Binder、trace、HiLog)
|
|
180
|
+
- ✅ 提供针对性的问题分类和解决方案
|
|
144
181
|
|
|
145
182
|
### v1.2.8 (2026-01-15)
|
|
146
183
|
- ✅ 修复本地分支已存在时创建失败的问题
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { toolDefinitions } from "./server/tools.js";
|
|
|
9
9
|
import { handleToolCall } from "./server/handlers.js";
|
|
10
10
|
import { initProjectRoot } from "./utils/project.js";
|
|
11
11
|
// 版本号
|
|
12
|
-
const VERSION = "1.
|
|
12
|
+
const VERSION = "1.3.1";
|
|
13
13
|
const server = new Server({
|
|
14
14
|
name: "bmall-mcp",
|
|
15
15
|
version: VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiGH;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GAO9B"}
|
package/dist/server/handlers.js
CHANGED
|
@@ -7,6 +7,7 @@ import { getGitCommitPrompt } from "../tools/git/commit.js";
|
|
|
7
7
|
import { getMtaReadPrompt } from "../tools/mta/read/index.js";
|
|
8
8
|
import { getMtaImplementationPrompt } from "../tools/mta/implementation/index.js";
|
|
9
9
|
import { getMtaIntegrationPrompt } from "../tools/mta/integration/index.js";
|
|
10
|
+
import { getAppFreezeAnalysisPrompt } from "../tools/appfreeze/index.js";
|
|
10
11
|
import { detectCurrentIDE } from "../utils/index.js";
|
|
11
12
|
// 创建文本响应
|
|
12
13
|
function textResponse(text) {
|
|
@@ -67,6 +68,21 @@ const handlers = {
|
|
|
67
68
|
const prompt = getMtaIntegrationPrompt(requirementId, businessCodePath);
|
|
68
69
|
return textResponse(prompt);
|
|
69
70
|
},
|
|
71
|
+
analyze_appfreeze: async (args) => {
|
|
72
|
+
const logFilePath = args.logFilePath;
|
|
73
|
+
const outputPath = args.outputPath;
|
|
74
|
+
if (!logFilePath) {
|
|
75
|
+
return errorResponse("缺少必填参数: logFilePath (AppFreeze日志文件路径)");
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const prompt = getAppFreezeAnalysisPrompt(logFilePath, outputPath);
|
|
79
|
+
return textResponse(prompt);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
const message = error instanceof Error ? error.message : "未知错误";
|
|
83
|
+
return textResponse(message);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
70
86
|
};
|
|
71
87
|
/**
|
|
72
88
|
* 处理 Tool 调用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,SAAS;AACT,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS;AACT,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,YAAY,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;AACtC,CAAC;AAKD,MAAM,QAAQ,GAAgC;IAC5C,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAI,IAAI,CAAC,GAA0B,IAAI,gBAAgB,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAI,IAAI,CAAC,GAA0B,IAAI,gBAAgB,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAwB,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,aAAa,CAAC,oCAAoC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAuB,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAgC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC,gCAAgC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,0BAA0B,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAuB,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAsC,CAAC;QACrE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC,gCAAgC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACxE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAqB,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAgC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,aAAa,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACnE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAChE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,IAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/server/tools.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export declare const toolDefinitions: ({
|
|
|
24
24
|
requirementId?: undefined;
|
|
25
25
|
moduleName?: undefined;
|
|
26
26
|
businessCodePath?: undefined;
|
|
27
|
+
logFilePath?: undefined;
|
|
28
|
+
outputPath?: undefined;
|
|
27
29
|
};
|
|
28
30
|
required?: undefined;
|
|
29
31
|
};
|
|
@@ -53,6 +55,8 @@ export declare const toolDefinitions: ({
|
|
|
53
55
|
requirementId?: undefined;
|
|
54
56
|
moduleName?: undefined;
|
|
55
57
|
businessCodePath?: undefined;
|
|
58
|
+
logFilePath?: undefined;
|
|
59
|
+
outputPath?: undefined;
|
|
56
60
|
};
|
|
57
61
|
required?: undefined;
|
|
58
62
|
};
|
|
@@ -74,6 +78,8 @@ export declare const toolDefinitions: ({
|
|
|
74
78
|
requirementId?: undefined;
|
|
75
79
|
moduleName?: undefined;
|
|
76
80
|
businessCodePath?: undefined;
|
|
81
|
+
logFilePath?: undefined;
|
|
82
|
+
outputPath?: undefined;
|
|
77
83
|
};
|
|
78
84
|
required: string[];
|
|
79
85
|
};
|
|
@@ -99,6 +105,8 @@ export declare const toolDefinitions: ({
|
|
|
99
105
|
requirementId?: undefined;
|
|
100
106
|
moduleName?: undefined;
|
|
101
107
|
businessCodePath?: undefined;
|
|
108
|
+
logFilePath?: undefined;
|
|
109
|
+
outputPath?: undefined;
|
|
102
110
|
};
|
|
103
111
|
required: string[];
|
|
104
112
|
};
|
|
@@ -123,6 +131,8 @@ export declare const toolDefinitions: ({
|
|
|
123
131
|
requirementUrl?: undefined;
|
|
124
132
|
platform?: undefined;
|
|
125
133
|
businessCodePath?: undefined;
|
|
134
|
+
logFilePath?: undefined;
|
|
135
|
+
outputPath?: undefined;
|
|
126
136
|
};
|
|
127
137
|
required: string[];
|
|
128
138
|
};
|
|
@@ -147,6 +157,34 @@ export declare const toolDefinitions: ({
|
|
|
147
157
|
requirementUrl?: undefined;
|
|
148
158
|
platform?: undefined;
|
|
149
159
|
moduleName?: undefined;
|
|
160
|
+
logFilePath?: undefined;
|
|
161
|
+
outputPath?: undefined;
|
|
162
|
+
};
|
|
163
|
+
required: string[];
|
|
164
|
+
};
|
|
165
|
+
} | {
|
|
166
|
+
name: string;
|
|
167
|
+
description: string;
|
|
168
|
+
inputSchema: {
|
|
169
|
+
type: string;
|
|
170
|
+
properties: {
|
|
171
|
+
logFilePath: {
|
|
172
|
+
type: string;
|
|
173
|
+
description: string;
|
|
174
|
+
};
|
|
175
|
+
outputPath: {
|
|
176
|
+
type: string;
|
|
177
|
+
description: string;
|
|
178
|
+
};
|
|
179
|
+
ide?: undefined;
|
|
180
|
+
rulesType?: undefined;
|
|
181
|
+
message?: undefined;
|
|
182
|
+
scope?: undefined;
|
|
183
|
+
requirementUrl?: undefined;
|
|
184
|
+
platform?: undefined;
|
|
185
|
+
requirementId?: undefined;
|
|
186
|
+
moduleName?: undefined;
|
|
187
|
+
businessCodePath?: undefined;
|
|
150
188
|
};
|
|
151
189
|
required: string[];
|
|
152
190
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkI3B,CAAC"}
|
package/dist/server/tools.js
CHANGED
|
@@ -113,5 +113,23 @@ export const toolDefinitions = [
|
|
|
113
113
|
required: ["requirementId"],
|
|
114
114
|
},
|
|
115
115
|
},
|
|
116
|
+
{
|
|
117
|
+
name: "analyze_appfreeze",
|
|
118
|
+
description: "AppFreeze分析:根据AppFreeze日志文件生成详细的分析提示词,指导AI按照标准流程诊断应用冻屏问题",
|
|
119
|
+
inputSchema: {
|
|
120
|
+
type: "object",
|
|
121
|
+
properties: {
|
|
122
|
+
logFilePath: {
|
|
123
|
+
type: "string",
|
|
124
|
+
description: "AppFreeze日志文件路径,如:/path/to/appfreeze.log",
|
|
125
|
+
},
|
|
126
|
+
outputPath: {
|
|
127
|
+
type: "string",
|
|
128
|
+
description: "分析报告输出路径(可选,默认为当前目录)",
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
required: ["logFilePath"],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
116
134
|
];
|
|
117
135
|
//# sourceMappingURL=tools.js.map
|
package/dist/server/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;oBAC/C,WAAW,EAAE,mCAAmC;iBACjD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAC7C,WAAW,EAAE,sBAAsB;iBACpC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;oBAC/C,WAAW,EAAE,mCAAmC;iBACjD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,WAAW;iBACzB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAC7C,WAAW,EAAE,sBAAsB;iBACpC;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;iBAC1E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;oBAC3C,WAAW,EAAE,uBAAuB;iBACrC;aACF;YACD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;SAC7B;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACpC;aACF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,eAAe,CAAC;SAC5B;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 鸿蒙 AppFreeze 分析提示词模板
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 生成鸿蒙 AppFreeze 分析提示词
|
|
6
|
+
* @param logFilePath - 日志文件路径
|
|
7
|
+
* @param outputPath - 输出路径
|
|
8
|
+
* @returns 完整的分析提示词
|
|
9
|
+
*/
|
|
10
|
+
export declare function getHarmonyAppFreezePrompt(logFilePath: string, outputPath: string): string;
|
|
11
|
+
//# sourceMappingURL=harmony.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harmony.d.ts","sourceRoot":"","sources":["../../../src/tools/appfreeze/harmony.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAiER"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 鸿蒙 AppFreeze 分析提示词模板
|
|
3
|
+
*/
|
|
4
|
+
import { join, dirname } from "path";
|
|
5
|
+
import { fileURLToPath } from "url";
|
|
6
|
+
// 获取当前文件所在目录
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = dirname(__filename);
|
|
9
|
+
/**
|
|
10
|
+
* 生成鸿蒙 AppFreeze 分析提示词
|
|
11
|
+
* @param logFilePath - 日志文件路径
|
|
12
|
+
* @param outputPath - 输出路径
|
|
13
|
+
* @returns 完整的分析提示词
|
|
14
|
+
*/
|
|
15
|
+
export function getHarmonyAppFreezePrompt(logFilePath, outputPath) {
|
|
16
|
+
// 获取指南文件的绝对路径
|
|
17
|
+
const guidePath = join(__dirname, "harmonyos-appfreeze-guide.md");
|
|
18
|
+
return `# 鸿蒙 AppFreeze 问题定位任务
|
|
19
|
+
|
|
20
|
+
**目标**:定位应用冻屏的根本原因,不需要给出修复方案。
|
|
21
|
+
|
|
22
|
+
**日志文件**: \`${logFilePath}\`
|
|
23
|
+
**分析指南**: \`${guidePath}\`
|
|
24
|
+
**报告输出**: \`${outputPath}/appfreeze-analysis-report.md\`
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 📚 第1步:读取分析指南
|
|
29
|
+
|
|
30
|
+
\`\`\`
|
|
31
|
+
readFile(path="${guidePath}")
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
指南包含完整的分析方法、问题分类和典型案例。
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 📄 第2步:分段读取日志
|
|
39
|
+
|
|
40
|
+
⚠️ **日志文件通常很大,请分段读取,避免上下文过载**
|
|
41
|
+
|
|
42
|
+
建议读取顺序:
|
|
43
|
+
1. 前200行(基本信息)
|
|
44
|
+
2. 搜索 "THREAD_BLOCK_3S" 和 "THREAD_BLOCK_6S"(栈信息)
|
|
45
|
+
3. 搜索 "EventHandler dump"(任务队列)
|
|
46
|
+
4. 搜索 "BinderCatcher"(IPC调用链)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 🎯 第3步:问题定位
|
|
51
|
+
|
|
52
|
+
按照指南的"分析三板斧"方法定位问题:
|
|
53
|
+
- 看 freeze 栈:对比 3S/6S 栈
|
|
54
|
+
- 看 EventHandler:分析任务耗时
|
|
55
|
+
- 看 Binder:分析 IPC 调用
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 📝 第4步:生成报告
|
|
60
|
+
|
|
61
|
+
生成精简的问题定位报告(5个核心章节):
|
|
62
|
+
|
|
63
|
+
1. **基本信息** - Pid、故障类型、时间、前后台状态
|
|
64
|
+
2. **故障栈分析** - 3S/6S 栈对比、关键调用栈
|
|
65
|
+
3. **EventHandler 分析** - 当前任务时长、高优先级任务统计
|
|
66
|
+
4. **Binder 分析** - 调用链、阻塞点(如果有)
|
|
67
|
+
5. **问题定位** - 问题类型、根本原因、证据链
|
|
68
|
+
|
|
69
|
+
**撰写要求**:
|
|
70
|
+
- ✅ 精简聚焦,每章节 10-20 行
|
|
71
|
+
- ✅ 只定位问题,不给修复方案和代码
|
|
72
|
+
- ✅ 使用 ✅ ❌ ⚠️ 标记关键信息
|
|
73
|
+
|
|
74
|
+
保存到 \`${outputPath}/appfreeze-analysis-report.md\`
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
现在请开始分析。`;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=harmony.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harmony.js","sourceRoot":"","sources":["../../../src/tools/appfreeze/harmony.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,aAAa;AACb,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,UAAkB;IAElB,cAAc;IACd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;IAElE,OAAO;;;;cAIK,WAAW;cACX,SAAS;cACT,UAAU;;;;;;;iBAOP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2ClB,UAAU;;;;SAIT,CAAC;AACV,CAAC"}
|