@uwa4d/openapi-mcp 0.2.0-beta.5 → 0.2.0-beta.8
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 +1 -5
- package/dist/annotate-dashboard.d.ts +34 -0
- package/dist/annotate-dashboard.js +275 -0
- package/dist/composite/name-pattern.d.ts +8 -0
- package/dist/composite/name-pattern.js +25 -0
- package/dist/composite/report-diagnosis.js +42 -2
- package/dist/composite/stack-agg.d.ts +15 -3
- package/dist/composite/stack-agg.js +154 -2
- package/dist/composite/stack-test-mode.d.ts +33 -0
- package/dist/composite/stack-test-mode.js +60 -0
- package/dist/composite/top-functions.d.ts +7 -2
- package/dist/composite/top-functions.js +74 -29
- package/dist/indicator-dashboard-keys.d.ts +12 -0
- package/dist/indicator-dashboard-keys.js +49 -0
- package/dist/indicator-dashboard-keys.json +338 -0
- package/dist/presets.js +5 -0
- package/dist/tools.d.ts +4 -0
- package/dist/tools.js +135 -11
- package/dist/version-guide.d.ts +5 -0
- package/dist/version-guide.js +101 -1
- package/package.json +2 -2
- package/spec/uwa-openapi.json +490 -106
package/dist/version-guide.js
CHANGED
|
@@ -11,12 +11,34 @@
|
|
|
11
11
|
export const INDICATOR_DASHBOARD_PANEL_GUIDE = [
|
|
12
12
|
'【indicatorDashboards 传参名称——勿按后缀猜统计维度】',
|
|
13
13
|
'- 传参名(如 temperature_max、fps_avg、drawcall_cnt_max)是**面板标识符**,_max / _avg / @max 等为历史命名,**不限制**返回 mean / maximum / min 等统计类型。',
|
|
14
|
+
'- 【返回粒度】每个面板一次返回其下所有子指标的全部统计量(mean / min / maximum / maximum_frame / 专属指标,以及 scene_*),',
|
|
15
|
+
' 无需也无法按统计量拆成多个面板名(勿传 fps_mean、fps_max、fps_min)。面板→子指标展开见返回体 group;入参→出参映射见 _paramFieldMap。',
|
|
14
16
|
'- 例:temperature_max 面板含子指标 temperature、android_temper_cpu、android_temper_gpu、android_temper_battery;',
|
|
15
17
|
' · 曲线接口(indicator_curve / custom_dashboard)→ 各子指标逐帧曲线;',
|
|
16
18
|
' · 统计 2.0(indicator_statistic_dashboard)→ statistic 下 *_mean / *_maximum / *_min 及 scene_* 等全量统计。',
|
|
17
19
|
'- 查温度曲线/均值/峰值:Unity Overview 且 SDK ≥ 2.5.1 时传 indicatorDashboards=temperature_max,再读 y_axis 或 statistic;勿仅看 get_overview_statistic 的汇总段。',
|
|
20
|
+
'- 合法面板名先调 gotonline_overview_indicator_dashboard_keys(全量枚举);勿传 fps_mean、frametime_min 等统计字段名。',
|
|
21
|
+
'- 误传示例:fps_mean、frametime_gt_40_pct(缺 @)、frametime_min;合法示例:fps_avg、frametime@gt_40_pct(注意 @ 与阈值不可瞎猜)。',
|
|
18
22
|
'- UE Overview 当前 Open API 未开放 custom/indicator dashboard 路径(会 24052),UE 温度汇总见 get_ue_overview_statistic_v2 的 temperature 段。',
|
|
19
23
|
].join('\n');
|
|
24
|
+
/**
|
|
25
|
+
* 堆栈 / 卡顿工具路由。卡顿树已是「多帧合并后的根因视图」,
|
|
26
|
+
* 禁止误导成「对每个 >40ms 帧循环拉指定帧树再聚类」。
|
|
27
|
+
*/
|
|
28
|
+
export const STACK_ANALYSIS_GUIDE = [
|
|
29
|
+
'【堆栈/卡顿选用——务必先看】',
|
|
30
|
+
'- 卡顿根因主路径:用**卡顿聚合树**(已合并全部/场景内卡顿帧),不要对每个慢帧循环拉指定帧树。',
|
|
31
|
+
'- 工具分工:',
|
|
32
|
+
' · gotonline_overview_stack_stutter_full_presign → 卡顿帧列表(哪些帧卡、类型耗时拆分)',
|
|
33
|
+
' · gotonline_overview_stack_stutter_full_tree_presign → **全部卡顿帧合并后的堆栈树**(全报告卡顿共性根因)',
|
|
34
|
+
' · gotonline_overview_stack_stutter_scene_tree_presign → **指定场景内卡顿帧合并树**(主玩法段)',
|
|
35
|
+
' · gotonline_overview_stack_tree_frame_presign → **单帧**完整树(仅尖峰深挖,如已知 frameId=8439)',
|
|
36
|
+
' · gotonline_overview_stack_overall_tree_presign → 整线程全量堆栈(非卡顿专用;看持续税/全局热点)',
|
|
37
|
+
' · gotonline_overview_stack_sample_frame_presign → 树结点逐帧曲线',
|
|
38
|
+
'- 慢帧占比/挑代表帧:indicator 面板 frametime@gt_40_pct(统计或 curve+valueGt);根因归因仍走卡顿聚合树。',
|
|
39
|
+
'- 读任何堆栈树前必须配合 gotonline_overview_stack_id_map(树里是 methodId)。',
|
|
40
|
+
'- 错误假设:❌「没有批量帧树就无法做卡顿根因」——总体/场景卡顿树就是合并结果。',
|
|
41
|
+
].join('\n');
|
|
20
42
|
/** 写入工具 description 的「选用规则」块,key 为 operation id。 */
|
|
21
43
|
export const VERSION_GUIDE = {
|
|
22
44
|
get_overview_statistic_v1: [
|
|
@@ -59,6 +81,8 @@ export const VERSION_GUIDE = {
|
|
|
59
81
|
'- 自定义面板统计 2.0。需 SDK ≥ 2.5.1,支持 GPU 指标,最多 15 个面板。',
|
|
60
82
|
'- 旧接口(抽帧、无 GPU)见 gotonline_overview_custom_dashboard。',
|
|
61
83
|
'- 只要逐帧曲线不要统计值时用 gotonline_overview_indicator_curve_dashboard。',
|
|
84
|
+
'- 返回 statistic 为空时优先怀疑 indicatorDashboards 传错;响应可能含 _hint / _unknownDashboards。',
|
|
85
|
+
'- 响应可能含 _paramFieldMap(入参面板→出参字段)、_duplicateFlatAliases、_sceneUnitNote(scene_* 补单位标注)。',
|
|
62
86
|
INDICATOR_DASHBOARD_PANEL_GUIDE,
|
|
63
87
|
].join('\n'),
|
|
64
88
|
gotonline_overview_indicator_curve_dashboard: [
|
|
@@ -68,6 +92,8 @@ export const VERSION_GUIDE = {
|
|
|
68
92
|
'- 【横轴——勿混用】外层 x_axis 为逐帧共享横轴(1、2、3…);y_axis.{指标名}.x_axis 为该曲线专属横轴(常见步长 30:0、30、60…)。',
|
|
69
93
|
'- 读取某条曲线时:若存在专属 x_axis 必须用专属,否则才用外层共享 x_axis。把共享横轴套到 FPS 等专属曲线会错位。',
|
|
70
94
|
'- 响应另含 _axisBinding / _axisHint,按其中 xAxisSource 取值即可。',
|
|
95
|
+
'- 【过滤——MCP 侧】可选 valueGt / valueLt / topN / returnFramesOnly:只返回超阈值或 TopN 点,适合慢帧列表(例:frametime@gt_40_pct + valueGt=40)。',
|
|
96
|
+
'- 慢帧列表 ≠ 卡顿根因:根因请用 stutter_full_tree / stutter_scene_tree(卡顿帧已合并),不要对 valueGt 结果逐帧拉 stack_tree_frame。',
|
|
71
97
|
INDICATOR_DASHBOARD_PANEL_GUIDE,
|
|
72
98
|
].join('\n'),
|
|
73
99
|
gotonline_gpu_curve: [
|
|
@@ -102,8 +128,82 @@ export const VERSION_GUIDE = {
|
|
|
102
128
|
].join('\n'),
|
|
103
129
|
gotonline_overview_method_group_statistic: [
|
|
104
130
|
'【选用规则——务必先看】',
|
|
105
|
-
'- 自定义函数组统计(Unity SDK ≥ 2.5.1;UE 提交日 > 2026-03-25
|
|
131
|
+
'- 自定义函数组统计(Unity SDK ≥ 2.5.1;UE 提交日 > 2026-03-25)。',
|
|
132
|
+
'- **MCP 默认 apiVersion=v1.0.2**(勿用 v1.0.1,会参数错误)。需要旧行为时显式传 apiVersion=v1.0.1。',
|
|
106
133
|
'- UE 旧报告请用 gotonline_overview_group_export。',
|
|
134
|
+
'- 未配置自定义函数组时 data=[];Overview 热点函数曲线优先用 method_idmap_statistic + method_curve_presign,不必依赖函数组。',
|
|
135
|
+
].join('\n'),
|
|
136
|
+
gotonline_overview_method_idmap_statistic: [
|
|
137
|
+
'【选用规则——务必先看】',
|
|
138
|
+
'- **仅 Overview 报告**;返回 id_map 全部函数的统计(不去重、不过滤)。',
|
|
139
|
+
'- stackTestMode(Overview 堆栈采集模式)决定哪些字段有值:',
|
|
140
|
+
' · CPU_ONLY:selfTimeMean / totalTimeMean / callCountTotal',
|
|
141
|
+
' · LUA_MEM_ONLY:callCountTotal / selfMemoryMean / selfMemoryTotal',
|
|
142
|
+
' · CPU_AND_LUA_MEM:以上全部;UE 固定 CPU_ONLY',
|
|
143
|
+
'- Unity:dataKey/recordId;UE:另传 threadName(如 GameThread)。Header v1.0.2。',
|
|
144
|
+
'- 复合工具 top_functions(Overview)会读 stackTestMode 并校验 metric;Mono 报告不走此规则。',
|
|
145
|
+
].join('\n'),
|
|
146
|
+
gotonline_overview_method_curve: [
|
|
147
|
+
'【选用规则——务必先看】',
|
|
148
|
+
'- v1.0.1 直出曲线 JSON(按 stackMethodName 或 stackMethodId)。',
|
|
149
|
+
'- **MCP 与 Open API 推荐改用 gotonline_overview_method_curve_presign(v1.0.2)**:OSS 预签名,仅传 stackMethodId。',
|
|
150
|
+
'- stackMethodId 来自 gotonline_overview_method_idmap_statistic 或自定义函数组统计。',
|
|
151
|
+
].join('\n'),
|
|
152
|
+
gotonline_overview_method_curve_presign: [
|
|
153
|
+
'【选用规则——务必先看】',
|
|
154
|
+
'- v1.0.2 OSS 预签名下载函数逐帧曲线 JSON(Unity · UE)。',
|
|
155
|
+
'- **Open API 入口仅支持 stackMethodId(必填)**;UE 另需 threadName。',
|
|
156
|
+
'- 不要用 v1.0.1 gotonline_overview_method_curve 除非必须服务端直出。',
|
|
157
|
+
'- stackMethodId 优先从 gotonline_overview_method_idmap_statistic 获取。',
|
|
158
|
+
].join('\n'),
|
|
159
|
+
gotonline_overview_indicator_dashboard_keys: [
|
|
160
|
+
'【选用规则——务必先看】',
|
|
161
|
+
'- 返回 Overview 指标面板传参名称全量列表(indicatorDashboards 合法取值)。',
|
|
162
|
+
'- 无需 dataKey/recordId;与 statistic/curve dashboard 调用前校验同源。',
|
|
163
|
+
'- 勿把 fps_mean、frametime_min 等 statistic 内字段名当作面板名。',
|
|
164
|
+
'- 合法示例:fps_avg、drawcall_cnt_max、frametime@gt_40_pct、temperature_max。',
|
|
165
|
+
INDICATOR_DASHBOARD_PANEL_GUIDE,
|
|
166
|
+
].join('\n'),
|
|
167
|
+
gotonline_overview_stack_id_map: [
|
|
168
|
+
'【选用规则——务必先看】',
|
|
169
|
+
'- 函数 ID ↔ 名称映射。解析任何 stack_*_tree / stutter_*_tree 前先调本工具。',
|
|
170
|
+
STACK_ANALYSIS_GUIDE,
|
|
171
|
+
].join('\n'),
|
|
172
|
+
gotonline_overview_stack_overall_tree_presign: [
|
|
173
|
+
'【选用规则——务必先看】',
|
|
174
|
+
'- 指定线程的**全量**调用堆栈树(含非卡顿帧),适合持续税/全局热点。',
|
|
175
|
+
'- 只要卡顿根因:改用 stutter_full_tree / stutter_scene_tree,勿用本接口代替卡顿聚合。',
|
|
176
|
+
STACK_ANALYSIS_GUIDE,
|
|
177
|
+
].join('\n'),
|
|
178
|
+
gotonline_overview_stack_stutter_full_presign: [
|
|
179
|
+
'【选用规则——务必先看】',
|
|
180
|
+
'- 卡顿**帧列表**(帧号 + 卡顿类型耗时拆分),不是堆栈树。',
|
|
181
|
+
'- 要卡顿根因堆栈:接着调 stutter_full_tree_presign(或场景版 stutter_scene_tree)。',
|
|
182
|
+
STACK_ANALYSIS_GUIDE,
|
|
183
|
+
].join('\n'),
|
|
184
|
+
gotonline_overview_stack_stutter_full_tree_presign: [
|
|
185
|
+
'【选用规则——务必先看】',
|
|
186
|
+
'- **全部卡顿帧已合并**的调用堆栈树 = 卡顿根因主入口(服务端聚合,无需客户端逐帧拉树再聚类)。',
|
|
187
|
+
'- 只要某一场景:用 stutter_scene_tree;只要某一尖峰帧细节:再用 stack_tree_frame。',
|
|
188
|
+
STACK_ANALYSIS_GUIDE,
|
|
189
|
+
].join('\n'),
|
|
190
|
+
gotonline_overview_stack_stutter_scene_tree_presign: [
|
|
191
|
+
'【选用规则——务必先看】',
|
|
192
|
+
'- **指定场景内卡顿帧已合并**的堆栈树;sceneIndex 来自 list_scenes 下标。',
|
|
193
|
+
'- 全报告卡顿用 stutter_full_tree;单帧深挖用 stack_tree_frame。',
|
|
194
|
+
STACK_ANALYSIS_GUIDE,
|
|
195
|
+
].join('\n'),
|
|
196
|
+
gotonline_overview_stack_tree_frame_presign: [
|
|
197
|
+
'【选用规则——务必先看】',
|
|
198
|
+
'- **单帧**完整堆栈树(frameId 必填)。用于已知尖峰帧深挖,不是卡顿分析的第一步。',
|
|
199
|
+
'- 卡顿共性根因请先用 stutter_full_tree / stutter_scene_tree(已是多帧合并结果)。',
|
|
200
|
+
'- ❌ 不要对 frametime valueGt 筛出的每个慢帧循环调用本工具来「聚类」。',
|
|
201
|
+
STACK_ANALYSIS_GUIDE,
|
|
202
|
+
].join('\n'),
|
|
203
|
+
gotonline_overview_stack_sample_frame_presign: [
|
|
204
|
+
'【选用规则——务必先看】',
|
|
205
|
+
'- 堆栈树某个结点的逐帧曲线;结点 id 来自树文件。',
|
|
206
|
+
STACK_ANALYSIS_GUIDE,
|
|
107
207
|
].join('\n'),
|
|
108
208
|
};
|
|
109
209
|
export function versionGuideFor(opId) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uwa4d/openapi-mcp",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.8",
|
|
4
4
|
"description": "UWA 开放平台 MCP Server,将 UWA Open API 暴露为 MCP 工具供 AI 助手调用",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"gen": "tsx scripts/parse-docs.ts",
|
|
23
|
+
"gen": "tsx scripts/extract-dashboard-keys.ts && tsx scripts/parse-docs.ts",
|
|
24
24
|
"build": "tsc -p tsconfig.json",
|
|
25
25
|
"dev": "tsx src/cli.ts",
|
|
26
26
|
"smoke": "tsx scripts/smoke-test.ts",
|