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.
Files changed (69) hide show
  1. package/README.md +37 -0
  2. package/dist/index.js +1 -1
  3. package/dist/server/handlers.d.ts.map +1 -1
  4. package/dist/server/handlers.js +16 -0
  5. package/dist/server/handlers.js.map +1 -1
  6. package/dist/server/tools.d.ts +38 -0
  7. package/dist/server/tools.d.ts.map +1 -1
  8. package/dist/server/tools.js +18 -0
  9. package/dist/server/tools.js.map +1 -1
  10. package/dist/tools/appfreeze/harmony.d.ts +11 -0
  11. package/dist/tools/appfreeze/harmony.d.ts.map +1 -0
  12. package/dist/tools/appfreeze/harmony.js +80 -0
  13. package/dist/tools/appfreeze/harmony.js.map +1 -0
  14. package/dist/tools/appfreeze/harmonyos-appfreeze-guide.md +543 -0
  15. package/dist/tools/appfreeze/index.d.ts +13 -0
  16. package/dist/tools/appfreeze/index.d.ts.map +1 -0
  17. package/dist/tools/appfreeze/index.js +76 -0
  18. package/dist/tools/appfreeze/index.js.map +1 -0
  19. package/package.json +3 -2
  20. package/src/index.ts +1 -1
  21. package/src/server/handlers.ts +16 -0
  22. package/src/server/tools.ts +18 -0
  23. package/src/tools/appfreeze/harmony.ts +86 -0
  24. package/src/tools/appfreeze/harmonyos-appfreeze-guide.md +543 -0
  25. package/src/tools/appfreeze/index.ts +86 -0
  26. package/dist/tools/gitPrompt.d.ts +0 -6
  27. package/dist/tools/gitPrompt.d.ts.map +0 -1
  28. package/dist/tools/gitPrompt.js +0 -53
  29. package/dist/tools/gitPrompt.js.map +0 -1
  30. package/dist/tools/mta/implementationPromptIOS.d.ts +0 -1
  31. package/dist/tools/mta/implementationPromptIOS.d.ts.map +0 -1
  32. package/dist/tools/mta/implementationPromptIOS.js +0 -2
  33. package/dist/tools/mta/implementationPromptIOS.js.map +0 -1
  34. package/dist/tools/mta/utils.d.ts +0 -5
  35. package/dist/tools/mta/utils.d.ts.map +0 -1
  36. package/dist/tools/mta/utils.js +0 -5
  37. package/dist/tools/mta/utils.js.map +0 -1
  38. package/dist/tools/mtaImplementationPrompt.d.ts +0 -6
  39. package/dist/tools/mtaImplementationPrompt.d.ts.map +0 -1
  40. package/dist/tools/mtaImplementationPrompt.js +0 -6
  41. package/dist/tools/mtaImplementationPrompt.js.map +0 -1
  42. package/dist/tools/mtaIntegrationPrompt.d.ts +0 -6
  43. package/dist/tools/mtaIntegrationPrompt.d.ts.map +0 -1
  44. package/dist/tools/mtaIntegrationPrompt.js +0 -6
  45. package/dist/tools/mtaIntegrationPrompt.js.map +0 -1
  46. package/dist/tools/mtaRead.d.ts +0 -6
  47. package/dist/tools/mtaRead.d.ts.map +0 -1
  48. package/dist/tools/mtaRead.js +0 -98
  49. package/dist/tools/mtaRead.js.map +0 -1
  50. package/dist/tools/mtaReadPrompt.d.ts +0 -6
  51. package/dist/tools/mtaReadPrompt.d.ts.map +0 -1
  52. package/dist/tools/mtaReadPrompt.js +0 -93
  53. package/dist/tools/mtaReadPrompt.js.map +0 -1
  54. package/dist/tools/pull.d.ts +0 -2
  55. package/dist/tools/pull.d.ts.map +0 -1
  56. package/dist/tools/pull.js +0 -43
  57. package/dist/tools/pull.js.map +0 -1
  58. package/dist/tools/push.d.ts +0 -2
  59. package/dist/tools/push.d.ts.map +0 -1
  60. package/dist/tools/push.js +0 -93
  61. package/dist/tools/push.js.map +0 -1
  62. package/dist/tools/sync.d.ts +0 -2
  63. package/dist/tools/sync.d.ts.map +0 -1
  64. package/dist/tools/sync.js +0 -287
  65. package/dist/tools/sync.js.map +0 -1
  66. package/dist/tools/utils.d.ts +0 -11
  67. package/dist/tools/utils.d.ts.map +0 -1
  68. package/dist/tools/utils.js +0 -144
  69. 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.2.8";
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;AAiFH;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GAO9B"}
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"}
@@ -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":"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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgH3B,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkI3B,CAAC"}
@@ -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
@@ -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"}