@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
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedAt": "2026-08-07T02:47:15.585Z",
|
|
3
|
+
"keys": [
|
|
4
|
+
"Active_Dynamic_Bodies_Count_max",
|
|
5
|
+
"Active_Kinematic_Bodies_Count_max",
|
|
6
|
+
"AnimationClip_cnt_max",
|
|
7
|
+
"AnimationClip_mem_max_mb",
|
|
8
|
+
"AnimationUpdate_cpu_avg_ms",
|
|
9
|
+
"Animation_grpcpu_avg_ms",
|
|
10
|
+
"AnimatorInitialize_cpu_avg_ms",
|
|
11
|
+
"AnimatorInitialize_jank_rate",
|
|
12
|
+
"Animator_cnt_max",
|
|
13
|
+
"Animator_mem_max_mb",
|
|
14
|
+
"AnimatorsUpdate_cpu_avg_ms",
|
|
15
|
+
"AnimatorsWriteJob_cpu_avg_ms",
|
|
16
|
+
"Application.backgroundLoadingPriority",
|
|
17
|
+
"AssetBundle_Disk_mem_max_mb",
|
|
18
|
+
"AssetBundle_Memory_mem_max_mb",
|
|
19
|
+
"AssetBundle_cnt_max",
|
|
20
|
+
"AssetBundle_mem_max_mb",
|
|
21
|
+
"Asset_Count_max",
|
|
22
|
+
"Asset_total_cnt_max",
|
|
23
|
+
"Asset_total_mem_max_mb",
|
|
24
|
+
"AudioClip_cnt_max",
|
|
25
|
+
"AudioClip_mem_max_mb",
|
|
26
|
+
"Batch_cpu_cnt_max",
|
|
27
|
+
"Batches_Count_max",
|
|
28
|
+
"CameraImageEffects_cpu_avg_ms",
|
|
29
|
+
"CameraRender_cpu_avg_ms",
|
|
30
|
+
"CanvasBuildBatch_cpu_avg_ms",
|
|
31
|
+
"CanvasRenderSubBatch_cnt_max",
|
|
32
|
+
"CanvasRendererSyncTransform_cnt_max",
|
|
33
|
+
"CanvasSendWillRenderCanvases_cpu_avg_ms",
|
|
34
|
+
"CollectGarbageIncremental_cpu_avg_ms",
|
|
35
|
+
"Culling_cpu_avg_ms",
|
|
36
|
+
"Draw_Calls_Count_max",
|
|
37
|
+
"Dynamic_Bodies_2D_Count_max",
|
|
38
|
+
"FAsyncLoadingThread_cpu_avg_ms",
|
|
39
|
+
"FDrawSceneCommand_cpu_avg_ms",
|
|
40
|
+
"FTickFunctionTask_cpu_avg_ms",
|
|
41
|
+
"FTimerManager_cpu_avg_ms",
|
|
42
|
+
"Font_cnt_max",
|
|
43
|
+
"Font_mem_max_mb",
|
|
44
|
+
"GCCollect_jank_rate",
|
|
45
|
+
"GameThread_cpu_avg_ms",
|
|
46
|
+
"Game_Object_Count_max",
|
|
47
|
+
"GarbageCollectAssetsProfile_jank_rate",
|
|
48
|
+
"Instantiate_jank_rate",
|
|
49
|
+
"Kinematic_Bodies_2D_Count_max",
|
|
50
|
+
"LoadingReadObjectThreaded_jank_rate",
|
|
51
|
+
"LoadingReadObject_jank_rate",
|
|
52
|
+
"LoadingUpdatePreloading_cpu_avg_ms",
|
|
53
|
+
"Loading_grpcpu_avg_ms",
|
|
54
|
+
"Material_cnt_max",
|
|
55
|
+
"Material_mem_max_mb",
|
|
56
|
+
"MeshSkinningUpdate_cpu_avg_ms",
|
|
57
|
+
"Mesh_cnt_max",
|
|
58
|
+
"Mesh_mem_max_mb",
|
|
59
|
+
"Native_HeapTotal_mem_max_mb",
|
|
60
|
+
"Object_Count_max",
|
|
61
|
+
"OnDemandRendering_RenderFrameInterval_Count",
|
|
62
|
+
"Overlap_Queries_2D_Count_max",
|
|
63
|
+
"Overlaps_Count_max",
|
|
64
|
+
"ParticleSystemDraw_cnt_max",
|
|
65
|
+
"ParticleSystemUpdate_cpu_avg_ms",
|
|
66
|
+
"ParticleSystem_cnt_max",
|
|
67
|
+
"ParticleSystem_grpcpu_avg_ms",
|
|
68
|
+
"ParticleSystem_mem_max_mb",
|
|
69
|
+
"PhysicsFetchResults_cpu_avg_ms",
|
|
70
|
+
"PhysicsProcessReports_cpu_avg_ms",
|
|
71
|
+
"PhysicsProcessReports_jank_rate",
|
|
72
|
+
"PhysicsProcessing_cpu_avg_ms",
|
|
73
|
+
"PhysicsSimulate_cpu_avg_ms",
|
|
74
|
+
"Physics_grpcpu_avg_ms",
|
|
75
|
+
"RHIThread_cpu_avg_ms",
|
|
76
|
+
"RenderOpaqueGeometry_cpu_avg_ms",
|
|
77
|
+
"RenderPipelineManagerDoRenderLoop_Internal_cpu_avg_ms",
|
|
78
|
+
"RenderTexture_cnt_max",
|
|
79
|
+
"RenderTexture_mem_max_mb",
|
|
80
|
+
"RenderThread_cpu_avg_ms",
|
|
81
|
+
"RenderTransparentGeometry_cpu_avg_ms",
|
|
82
|
+
"RenderingEmitWorldScreenspaceCameraGeometry_cpu_avg_ms",
|
|
83
|
+
"Rendering_grpcpu_avg_ms",
|
|
84
|
+
"ResourcesUnloadUnusedAssets_cpu_avg_ms",
|
|
85
|
+
"STAT_AI_Overall_cpu_avg_ms",
|
|
86
|
+
"STAT_AddViewDependentWholeSceneShadowsForView_cpu_avg_ms",
|
|
87
|
+
"STAT_AnimGameThreadTime_cpu_avg_ms",
|
|
88
|
+
"STAT_AnimTickTime_cpu_avg_ms",
|
|
89
|
+
"STAT_AnimTriggerAnimNotifies_cpu_avg_ms",
|
|
90
|
+
"STAT_AnisotropyPassDrawTime_cpu_avg_ms",
|
|
91
|
+
"STAT_AssetRegistryLLM_max",
|
|
92
|
+
"STAT_AsyncLoadingLLM_max",
|
|
93
|
+
"STAT_BasePassDrawTime_cpu_avg_ms",
|
|
94
|
+
"STAT_BeginOcclusionTestsTime_cpu_avg_ms",
|
|
95
|
+
"STAT_BlendInPhysics_cpu_avg_ms",
|
|
96
|
+
"STAT_BlueprintTime_cpu_avg_ms",
|
|
97
|
+
"STAT_BuildCSMVisibilityState_cpu_avg_ms",
|
|
98
|
+
"STAT_CLMM_Occlusion_cpu_avg_ms",
|
|
99
|
+
"STAT_CLMM_Opaque_cpu_avg_ms",
|
|
100
|
+
"STAT_CLMM_Post_cpu_avg_ms",
|
|
101
|
+
"STAT_CLMM_Shadows_cpu_avg_ms",
|
|
102
|
+
"STAT_CLMM_Translucency_cpu_avg_ms",
|
|
103
|
+
"STAT_CSMStaticMeshReceivers_cnt_max",
|
|
104
|
+
"STAT_CSMSubjects_cnt_max",
|
|
105
|
+
"STAT_CacheUniformExpressions_cpu_avg_ms",
|
|
106
|
+
"STAT_CharFindFloor_cpu_avg_ms",
|
|
107
|
+
"STAT_CharHandleImpact_cpu_avg_ms",
|
|
108
|
+
"STAT_CharMoveUpdateDelegate_cpu_avg_ms",
|
|
109
|
+
"STAT_CharPhysFalling_cpu_avg_ms",
|
|
110
|
+
"STAT_CharPhysNavWalking_cpu_avg_ms",
|
|
111
|
+
"STAT_CharPhysWalking_cpu_avg_ms",
|
|
112
|
+
"STAT_CharacterMovementNonSimulated_cpu_avg_ms",
|
|
113
|
+
"STAT_CharacterMovementSimulated_cpu_avg_ms",
|
|
114
|
+
"STAT_CharacterMovementSmoothClientPosition_Interp_cpu_avg_ms",
|
|
115
|
+
"STAT_CharacterMovementSmoothClientPosition_Visual_cpu_avg_ms",
|
|
116
|
+
"STAT_CharacterMovementSmoothClientPosition_cpu_avg_ms",
|
|
117
|
+
"STAT_CharacterMovementTick_cpu_avg_ms",
|
|
118
|
+
"STAT_CharacterMovement_cpu_avg_ms",
|
|
119
|
+
"STAT_CollectGarbageInternalCall_ncall_max",
|
|
120
|
+
"STAT_CollectGarbageInternal_cpu_avg_ms",
|
|
121
|
+
"STAT_CollectGarbageInternal_cpu_max_ms",
|
|
122
|
+
"STAT_Collision_SceneQueryTotal_cpu_avg_ms",
|
|
123
|
+
"STAT_ComputeViewRelevance_cpu_avg_ms",
|
|
124
|
+
"STAT_CreateLumenRayTracingPipeline_cpu_avg_ms",
|
|
125
|
+
"STAT_CreateRayTracingPipeline_cpu_avg_ms",
|
|
126
|
+
"STAT_CreateWholeSceneProjectedShadow_cpu_avg_ms",
|
|
127
|
+
"STAT_DecalsDrawTime_cpu_avg_ms",
|
|
128
|
+
"STAT_DecompressPrecomputedOcclusion_cpu_avg_ms",
|
|
129
|
+
"STAT_DepthDrawTime_cpu_avg_ms",
|
|
130
|
+
"STAT_DestroyActor_cpu_avg_ms",
|
|
131
|
+
"STAT_DynamicEmitterCount_cnt_max",
|
|
132
|
+
"STAT_DynamicPSysCompCount_cnt_max",
|
|
133
|
+
"STAT_DynamicPSysCompCount_ncall_max",
|
|
134
|
+
"STAT_DynamicPrimitiveDrawTime_cpu_avg_ms",
|
|
135
|
+
"STAT_DynamicShadowSetupTime_cpu_avg_ms",
|
|
136
|
+
"STAT_EngineInitLLM_max",
|
|
137
|
+
"STAT_EngineMiscLLM_max",
|
|
138
|
+
"STAT_EnginePreInitLLM_max",
|
|
139
|
+
"STAT_ExplicitWaitRHIThread_cpu_avg_ms",
|
|
140
|
+
"STAT_FAsyncPackage_TickAsyncLoadingGameThread_cpu_avg_ms",
|
|
141
|
+
"STAT_FAsyncPackage_TickAsyncLoadingGameThread_cpu_max_ms",
|
|
142
|
+
"STAT_FEngineLoop_Tick_SlateInput_cpu_avg_ms",
|
|
143
|
+
"STAT_FNameLLM_max",
|
|
144
|
+
"STAT_FileSystemLLM_max",
|
|
145
|
+
"STAT_FinalizeAnimationUpdate_cpu_avg_ms",
|
|
146
|
+
"STAT_FinishRenderViewTargetTime_cpu_avg_ms",
|
|
147
|
+
"STAT_FrameSyncTime_cpu_avg_ms",
|
|
148
|
+
"STAT_GCLLM_max",
|
|
149
|
+
"STAT_GatherShadowPrimitivesTime_cpu_avg_ms",
|
|
150
|
+
"STAT_GetDynamicMeshElements_cpu_avg_ms",
|
|
151
|
+
"STAT_InitDynamicShadowsTime_cpu_avg_ms",
|
|
152
|
+
"STAT_InitProjectedShadowVisibility_cpu_avg_ms",
|
|
153
|
+
"STAT_InitViewsTime_cpu_avg_ms",
|
|
154
|
+
"STAT_InterpolateVolumetricLightmapOnCPU_cpu_avg_ms",
|
|
155
|
+
"STAT_LightingDrawTime_cpu_avg_ms",
|
|
156
|
+
"STAT_LocalizationLLM_max",
|
|
157
|
+
"STAT_MaterialsLLM_max",
|
|
158
|
+
"STAT_MeshDrawCalls_cnt_max",
|
|
159
|
+
"STAT_MeshObjectUpdate_cpu_avg_ms",
|
|
160
|
+
"STAT_Montage_Advance_cpu_avg_ms",
|
|
161
|
+
"STAT_NavWorldTickTime_cpu_avg_ms",
|
|
162
|
+
"STAT_NetReceiveRPC_cpu_avg_ms",
|
|
163
|
+
"STAT_NetWorldTickTime_cpu_avg_ms",
|
|
164
|
+
"STAT_NiagaraLLM_max",
|
|
165
|
+
"STAT_NiagaraNumSprites_cnt_max",
|
|
166
|
+
"STAT_NiagaraOverview_GT_cpu_avg_ms",
|
|
167
|
+
"STAT_NiagaraOverview_RT_cpu_avg_ms",
|
|
168
|
+
"STAT_NiagaraRenderSprites_ncall_max",
|
|
169
|
+
"STAT_OcclusionCull_cpu_avg_ms",
|
|
170
|
+
"STAT_OcclusionQueries_cnt_max",
|
|
171
|
+
"STAT_OpenGLShaderCompileTime_cpu_avg_ms",
|
|
172
|
+
"STAT_OpenGLShaderLinkTime_cpu_avg_ms",
|
|
173
|
+
"STAT_OpenGLShaderLinkTime_cpu_max_ms",
|
|
174
|
+
"STAT_ParticleDrawCalls_cnt_max",
|
|
175
|
+
"STAT_ParticlesLLM_max",
|
|
176
|
+
"STAT_ParticlesOverview_GT_cpu_avg_ms",
|
|
177
|
+
"STAT_ParticlesOverview_RT_cpu_avg_ms",
|
|
178
|
+
"STAT_PlatformTotalLLM_max",
|
|
179
|
+
"STAT_PlatformTrackedTotalLLM_max",
|
|
180
|
+
"STAT_PostAnimEvaluation_cpu_avg_ms",
|
|
181
|
+
"STAT_PresentTime_cpu_avg_ms",
|
|
182
|
+
"STAT_ProcessMouseButtonDown_cpu_avg_ms",
|
|
183
|
+
"STAT_ProcessMouseButtonUp_cpu_avg_ms",
|
|
184
|
+
"STAT_ProcessMouseMove_cpu_avg_ms",
|
|
185
|
+
"STAT_ProcessedPrimitives_cnt_max",
|
|
186
|
+
"STAT_ProgramSizeLLM_max",
|
|
187
|
+
"STAT_ProjectedShadowDrawTime_cpu_avg_ms",
|
|
188
|
+
"STAT_RHIDrawPrimitiveCalls_cnt_max",
|
|
189
|
+
"STAT_RHIMiscLLM_max",
|
|
190
|
+
"STAT_RHIThreadExecute_cpu_avg_ms",
|
|
191
|
+
"STAT_RHITriangles_cnt_max",
|
|
192
|
+
"STAT_RayTracingActiveInstances_cnt_max",
|
|
193
|
+
"STAT_RayTracingTotalInstances_cnt_max",
|
|
194
|
+
"STAT_RayTracing_FinishGatherInstances_cpu_avg_ms",
|
|
195
|
+
"STAT_ReflectiveShadowMapDrawTime_cpu_avg_ms",
|
|
196
|
+
"STAT_RefreshBoneTransforms_cpu_avg_ms",
|
|
197
|
+
"STAT_RenderQueryResultTime_cpu_avg_ms",
|
|
198
|
+
"STAT_RenderVelocities_cpu_avg_ms",
|
|
199
|
+
"STAT_ResourcesSumLLM_max",
|
|
200
|
+
"STAT_SceneDecals_cnt_max",
|
|
201
|
+
"STAT_SceneLights_cnt_max",
|
|
202
|
+
"STAT_SetupInteractionShadows_cpu_avg_ms",
|
|
203
|
+
"STAT_SetupMeshPass_cpu_avg_ms",
|
|
204
|
+
"STAT_ShadersLLM_max",
|
|
205
|
+
"STAT_Shaders_RTShaderLoadTime_cpu_avg_ms",
|
|
206
|
+
"STAT_Shaders_RTShaderLoadTime_cpu_max_ms",
|
|
207
|
+
"STAT_SkeletalMeshLLM_max",
|
|
208
|
+
"STAT_SlateApplicationInput_cpu_avg_ms",
|
|
209
|
+
"STAT_SlateDrawWindowTime_cpu_avg_ms",
|
|
210
|
+
"STAT_SlateElements_cnt_max",
|
|
211
|
+
"STAT_SlateMessageTick_cpu_avg_ms",
|
|
212
|
+
"STAT_SlateNumBatches_cnt_max",
|
|
213
|
+
"STAT_SlateNumPaintedWidgets_cnt_max",
|
|
214
|
+
"STAT_SlatePostProcessingRTTime_cpu_avg_ms",
|
|
215
|
+
"STAT_SlatePreFullBufferRTTime_cpu_avg_ms",
|
|
216
|
+
"STAT_SlatePreTickEvent_cpu_avg_ms",
|
|
217
|
+
"STAT_SlateRTDrawBatches_cpu_avg_ms",
|
|
218
|
+
"STAT_SlateRenderingRTTime_cpu_avg_ms",
|
|
219
|
+
"STAT_SlateTickTime_cpu_avg_ms",
|
|
220
|
+
"STAT_SlateTotalWidgets_cnt_max",
|
|
221
|
+
"STAT_SlateUpdateBufferRTTime_cpu_avg_ms",
|
|
222
|
+
"STAT_SlateVertexCount_cnt_max",
|
|
223
|
+
"STAT_SortStaticDrawLists_cpu_avg_ms",
|
|
224
|
+
"STAT_SpawnActorTime_cpu_avg_ms",
|
|
225
|
+
"STAT_SpawnActorTime_cpu_max_ms",
|
|
226
|
+
"STAT_StaticDrawListDrawTime_cpu_avg_ms",
|
|
227
|
+
"STAT_StaticMeshLLM_max",
|
|
228
|
+
"STAT_StaticRelevance_cpu_avg_ms",
|
|
229
|
+
"STAT_StatsLLM_max",
|
|
230
|
+
"STAT_TextureMetaDataLLM_max",
|
|
231
|
+
"STAT_ThreadStackLLM_max",
|
|
232
|
+
"STAT_TickableGameObjectsTime_cpu_avg_ms",
|
|
233
|
+
"STAT_TotalGPUFrameTime_cpu_avg_ms",
|
|
234
|
+
"STAT_TotalLLM_max",
|
|
235
|
+
"STAT_TotalPhysicsTime_cpu_avg_ms",
|
|
236
|
+
"STAT_TotalSceneRenderingTime_cpu_avg_ms",
|
|
237
|
+
"STAT_TranslucencyDrawTime_cpu_avg_ms",
|
|
238
|
+
"STAT_UILLM_max",
|
|
239
|
+
"STAT_UnitFrame_cpu_avg_ms",
|
|
240
|
+
"STAT_UnitGPU_cpu_avg_ms",
|
|
241
|
+
"STAT_UnitGame_cpu_avg_ms",
|
|
242
|
+
"STAT_UnitRHIT_cpu_avg_ms",
|
|
243
|
+
"STAT_UnitRender_cpu_avg_ms",
|
|
244
|
+
"STAT_UntaggedTotalLLM_max",
|
|
245
|
+
"STAT_UpdateAlwaysVisible_cpu_avg_ms",
|
|
246
|
+
"STAT_UpdateAnimation_cpu_avg_ms",
|
|
247
|
+
"STAT_UpdateIndirectLightingCache_cpu_avg_ms",
|
|
248
|
+
"STAT_UpdateOverlaps_cpu_avg_ms",
|
|
249
|
+
"STAT_UpdatePreshadowCache_cpu_avg_ms",
|
|
250
|
+
"STAT_UpdatePrimitiveFading_cpu_avg_ms",
|
|
251
|
+
"STAT_UpdateRBBones_cpu_avg_ms",
|
|
252
|
+
"STAT_UpdateStaticMeshesTime_cpu_avg_ms",
|
|
253
|
+
"STAT_ViewRelevance_cpu_avg_ms",
|
|
254
|
+
"STAT_ViewVisibilityTime_cpu_avg_ms",
|
|
255
|
+
"STAT_VisibleDynamicPrimitives_cnt_max",
|
|
256
|
+
"STAT_VisibleRayTracingPrimitives_cnt_max",
|
|
257
|
+
"STAT_VisibleStaticMeshElements_cnt_max",
|
|
258
|
+
"STAT_VulkanQueuePresent_cpu_avg_ms",
|
|
259
|
+
"STAT_WaterPassDrawTime_cpu_avg_ms",
|
|
260
|
+
"STAT_eglSwapBuffers_cpu_avg_ms",
|
|
261
|
+
"Scene_Object_Count_max",
|
|
262
|
+
"Screen_Resolution_Height_Count",
|
|
263
|
+
"Screen_Resolution_Width_Count",
|
|
264
|
+
"Scripting_grpcpu_avg_ms",
|
|
265
|
+
"ShaderCreateGPUProgram_jank_rate",
|
|
266
|
+
"ShaderParse_jank_rate",
|
|
267
|
+
"Shader_cnt_max",
|
|
268
|
+
"Shader_mem_max_mb",
|
|
269
|
+
"SkelMeshObjectUpdateDataCommand_cpu_avg_ms",
|
|
270
|
+
"SlateDrawWindowsCommand_cpu_avg_ms",
|
|
271
|
+
"StageEngineLateUpdate_cpu_avg_ms",
|
|
272
|
+
"Stat_ChannelReceivedRawBunchCall_ncall_max",
|
|
273
|
+
"Stat_ChannelReceivedRawBunch_ncall_max",
|
|
274
|
+
"Static_Colliders_Count_max",
|
|
275
|
+
"Static_Shapes_2D_Count_max",
|
|
276
|
+
"TextAsset_cnt_max",
|
|
277
|
+
"TextAsset_mem_max_mb",
|
|
278
|
+
"Texture_cnt_max",
|
|
279
|
+
"Texture_mem_max_mb",
|
|
280
|
+
"Triangles_Count_max",
|
|
281
|
+
"UIPanelLateUpdate_cpu_avg_ms",
|
|
282
|
+
"UIRectUpdate_cpu_avg_ms",
|
|
283
|
+
"Wasm_HeapTotal_mem_max_mb",
|
|
284
|
+
"Wwise_Reserved_mem_max_mb",
|
|
285
|
+
"android_memory_pss@max",
|
|
286
|
+
"batterylevel@mean_delta_p10000",
|
|
287
|
+
"batterypower_max",
|
|
288
|
+
"batterypower_mean",
|
|
289
|
+
"big_jank_rate",
|
|
290
|
+
"cpu_freq_x@mean",
|
|
291
|
+
"drawcall_cnt_max",
|
|
292
|
+
"fps_avg",
|
|
293
|
+
"frametime@gt_40_pct",
|
|
294
|
+
"gpu_counter_bandwidth_total_avg",
|
|
295
|
+
"gpu_counter_bandwidth_total_in_seconds_avg",
|
|
296
|
+
"gpu_counter_bus_utilization",
|
|
297
|
+
"gpu_counter_clocks",
|
|
298
|
+
"gpu_counter_cycles_per_pixel",
|
|
299
|
+
"gpu_counter_fragment",
|
|
300
|
+
"gpu_counter_fragment_shaded_avg",
|
|
301
|
+
"gpu_counter_gpu_temperature_max",
|
|
302
|
+
"gpu_counter_nobaselevel_texture_avg",
|
|
303
|
+
"gpu_counter_overdraw_avg",
|
|
304
|
+
"gpu_counter_primitive_avg",
|
|
305
|
+
"gpu_counter_read_stall_avg",
|
|
306
|
+
"gpu_counter_shader_cycles_avg",
|
|
307
|
+
"gpu_counter_shader_instructions_avg",
|
|
308
|
+
"gpu_counter_texture_cache_miss_l1_avg",
|
|
309
|
+
"gpu_target_freq_usage_120_fps_pct",
|
|
310
|
+
"gpu_target_freq_usage_30_fps_pct",
|
|
311
|
+
"gpu_target_freq_usage_45_fps_pct",
|
|
312
|
+
"gpu_target_freq_usage_60_fps_pct",
|
|
313
|
+
"gpu_time_avg_ms",
|
|
314
|
+
"ios_memory_footprint@max",
|
|
315
|
+
"jank_rate",
|
|
316
|
+
"jank_time_rate",
|
|
317
|
+
"lua_function_cnt_max",
|
|
318
|
+
"lua_mem_max_mb",
|
|
319
|
+
"lua_table_cnt_max",
|
|
320
|
+
"lua_userdata_cnt_max",
|
|
321
|
+
"monoObjectRef_cnt_max",
|
|
322
|
+
"network_in@max",
|
|
323
|
+
"network_out@max",
|
|
324
|
+
"power_max",
|
|
325
|
+
"reservedMono_mem_max_mb",
|
|
326
|
+
"reservedTotal_mem_max_mb",
|
|
327
|
+
"soc_ddr_freq",
|
|
328
|
+
"soc_gpu_freq",
|
|
329
|
+
"soc_gpu_loading",
|
|
330
|
+
"soc_gpu_utilization",
|
|
331
|
+
"temperature_max",
|
|
332
|
+
"temperature_mean",
|
|
333
|
+
"triangle_cnt_max",
|
|
334
|
+
"ui_cpu_avg_ms",
|
|
335
|
+
"usedSystem_mem_max_mb",
|
|
336
|
+
"windows_memory_workingset@max"
|
|
337
|
+
]
|
|
338
|
+
}
|
package/dist/presets.js
CHANGED
|
@@ -22,9 +22,14 @@ export const PRESET_DEFAULT = [
|
|
|
22
22
|
'list_optimization_tasks',
|
|
23
23
|
'gotonline_overview_indicator_statistic_dashboard',
|
|
24
24
|
'gotonline_overview_indicator_curve_dashboard',
|
|
25
|
+
'gotonline_overview_indicator_dashboard_keys',
|
|
25
26
|
'gotonline_overview_memory_manage_data_report',
|
|
26
27
|
'gotonline_overview_method_group_statistic',
|
|
28
|
+
'gotonline_overview_stack_id_map',
|
|
27
29
|
'gotonline_overview_stack_stutter_full_presign',
|
|
30
|
+
'gotonline_overview_stack_stutter_full_tree_presign',
|
|
31
|
+
'gotonline_overview_stack_stutter_scene_tree_presign',
|
|
32
|
+
'gotonline_overview_stack_tree_frame_presign',
|
|
28
33
|
// 复合工具(手写,见 src/composite/)
|
|
29
34
|
'top_resources',
|
|
30
35
|
'top_functions',
|
package/dist/tools.d.ts
CHANGED
|
@@ -28,6 +28,10 @@ export interface ToolResult {
|
|
|
28
28
|
* 帧号范围和步长,并在点数对不上时给出警告,从结构上消除歧义。
|
|
29
29
|
*/
|
|
30
30
|
export declare function annotateCurveAxes(data: unknown): unknown;
|
|
31
|
+
/**
|
|
32
|
+
* 自定义面板 statistic/curve 返回空 `{}` 时,优先提示面板名传错(静默失败高发)。
|
|
33
|
+
*/
|
|
34
|
+
export declare function annotateDashboardEmptyResult(op: Operation, data: unknown, args: Record<string, unknown>): unknown;
|
|
31
35
|
/**
|
|
32
36
|
* 报告列表接口一次返回、按项目组分组。但上游会把同一份报告挂到每个项目组下
|
|
33
37
|
* (沙箱实测多组两两交集 100%),直接按组统计会成倍放大。
|
package/dist/tools.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { UwaApiError } from './client.js';
|
|
3
3
|
import { INDICATOR_DASHBOARD_PANEL_GUIDE, versionGuideFor } from './version-guide.js';
|
|
4
|
+
import { partitionIndicatorDashboards, INDICATOR_DASHBOARD_KEYS, INDICATOR_DASHBOARD_NEGATIVE_EXAMPLES, } from './indicator-dashboard-keys.js';
|
|
5
|
+
import { annotateStatisticDashboard, extractCurveFilterArgs, filterCurveData, hasCurveFilter, isIndicatorCurveDashboard, isIndicatorStatisticDashboard, } from './annotate-dashboard.js';
|
|
4
6
|
const ENGINE_LABEL = { unity: 'Unity', unreal: 'UE' };
|
|
5
7
|
/**
|
|
6
8
|
* 预签名数据默认完整返回,不按条数截断——实测各接口解压后在 10 KB ~ 500 KB 之间,
|
|
@@ -85,36 +87,74 @@ function describe(op) {
|
|
|
85
87
|
}
|
|
86
88
|
return lines.join('\n');
|
|
87
89
|
}
|
|
90
|
+
const SERVICE_META_TYPE_ENUM = 'PA(真人真机)、GOT_ONLINE(GOT Online)、LT(本地资源检测)、AB(AssetBundle 检测)、ATP(自动化功能测试)、BR(Build 分析)';
|
|
91
|
+
/** 个别接口默认 apiVersion 与上游文档「推荐值」不一致时,在 MCP 侧纠偏。 */
|
|
92
|
+
function defaultApiVersionFor(op) {
|
|
93
|
+
if (op.id === 'gotonline_overview_method_group_statistic')
|
|
94
|
+
return 'v1.0.2';
|
|
95
|
+
return op.defaultApiVersion;
|
|
96
|
+
}
|
|
88
97
|
export function buildInputSchema(op) {
|
|
89
98
|
const shape = {};
|
|
90
99
|
for (const p of [...op.query, ...op.body]) {
|
|
91
100
|
let desc = p.description;
|
|
92
101
|
if (p.name === 'indicatorDashboards') {
|
|
102
|
+
const sampleKeys = ['fps_avg', 'drawcall_cnt_max', 'frametime@gt_40_pct', 'temperature_max'];
|
|
93
103
|
desc = [
|
|
94
104
|
desc,
|
|
95
105
|
'传参名为面板标识符:后缀 _max/_avg 等为历史命名,不表示只能取峰值或均值。',
|
|
96
|
-
'
|
|
106
|
+
'每个面板一次返回全部统计量,勿按 mean/max/min 拆成多个面板名。',
|
|
107
|
+
`合法取值共 ${INDICATOR_DASHBOARD_KEYS.length} 个;可先调 gotonline_overview_indicator_dashboard_keys 拉全量列表(命名含 @ 等,不可从示例归纳)。`,
|
|
108
|
+
`常见误传(非面板名):${INDICATOR_DASHBOARD_NEGATIVE_EXAMPLES.join('、')}。`,
|
|
109
|
+
`示例面板名:${sampleKeys.join('、')}。`,
|
|
97
110
|
].join(' ');
|
|
98
111
|
}
|
|
112
|
+
if (p.name === 'serviceMetaTypeList') {
|
|
113
|
+
desc = `${desc.replace(/见下方枚举值/, '枚举如下').replace(/,$/, '')}。合法值:${SERVICE_META_TYPE_ENUM}。`;
|
|
114
|
+
}
|
|
115
|
+
if (p.name === 'stackMethodName') {
|
|
116
|
+
desc = `${desc} 响应含 _resolvedMethod 时请核对实际命中的 stackMethodId(同名会自动取耗时最大者)。`;
|
|
117
|
+
}
|
|
99
118
|
const base = zodFor(p).describe(p.example ? `${desc}(示例:${p.example})` : desc);
|
|
100
119
|
shape[p.name] = p.required ? base : base.optional();
|
|
101
120
|
}
|
|
102
121
|
if (op.apiVersions.length > 1) {
|
|
122
|
+
const def = defaultApiVersionFor(op);
|
|
103
123
|
shape['apiVersion'] = z
|
|
104
124
|
.enum(op.apiVersions)
|
|
105
125
|
.optional()
|
|
106
|
-
.describe(`接口版本,默认 ${
|
|
126
|
+
.describe(`接口版本,默认 ${def}。不同版本的返回字段有差异,详见文档`);
|
|
107
127
|
}
|
|
108
128
|
if (op.returnsPresignUrl) {
|
|
129
|
+
const isHeavyTree = op.id.includes('stack_overall_tree') ||
|
|
130
|
+
op.id.includes('stack_stutter') ||
|
|
131
|
+
op.id.includes('stack_tree');
|
|
109
132
|
shape['download'] = z
|
|
110
133
|
.boolean()
|
|
111
134
|
.optional()
|
|
112
|
-
.describe(
|
|
135
|
+
.describe(isHeavyTree
|
|
136
|
+
? '是否自动下载并解析预签名数据,默认 true。大报告堆栈树建议 download=false,只取 dataPresignUrl 自行处理,避免撑爆上下文'
|
|
137
|
+
: '是否自动下载并解析预签名数据,默认 true。设为 false 时只返回 dataPresignUrl');
|
|
113
138
|
shape['maxRows'] = z
|
|
114
139
|
.number()
|
|
115
140
|
.optional()
|
|
116
141
|
.describe('可选的条目数上限。默认返回全部数据,只有在明确只需要前 N 条时才传这个参数');
|
|
117
142
|
}
|
|
143
|
+
if (isIndicatorCurveDashboard(op.path)) {
|
|
144
|
+
shape['valueGt'] = z
|
|
145
|
+
.number()
|
|
146
|
+
.optional()
|
|
147
|
+
.describe('MCP 侧过滤:只保留数值 > 该阈值的曲线点(例:帧耗时慢帧传 40,单位与曲线一致多为 ms)');
|
|
148
|
+
shape['valueLt'] = z.number().optional().describe('MCP 侧过滤:只保留数值 < 该阈值的曲线点');
|
|
149
|
+
shape['topN'] = z
|
|
150
|
+
.number()
|
|
151
|
+
.optional()
|
|
152
|
+
.describe('MCP 侧过滤:在阈值过滤后按数值降序只保留最大的 N 个点');
|
|
153
|
+
shape['returnFramesOnly'] = z
|
|
154
|
+
.boolean()
|
|
155
|
+
.optional()
|
|
156
|
+
.describe('MCP 侧:为 true 时每条曲线只返回 frames[] + values[],进一步压缩体积');
|
|
157
|
+
}
|
|
118
158
|
return shape;
|
|
119
159
|
}
|
|
120
160
|
/** 找出对象里最长的那个数组字段,它通常就是主数据列表。 */
|
|
@@ -258,6 +298,38 @@ export function annotateCurveAxes(data) {
|
|
|
258
298
|
_axisHint: '每条曲线按 _axisBinding[曲线名].xAxisSource 指定的横轴取值,不要统一使用外层 x_axis',
|
|
259
299
|
};
|
|
260
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* 自定义面板 statistic/curve 返回空 `{}` 时,优先提示面板名传错(静默失败高发)。
|
|
303
|
+
*/
|
|
304
|
+
export function annotateDashboardEmptyResult(op, data, args) {
|
|
305
|
+
const isDashboard = op.path.includes('/indicator/statistic/dashboard') ||
|
|
306
|
+
op.path.includes('/indicator/curve/dashboard') ||
|
|
307
|
+
op.path.includes('/custom/dashboard');
|
|
308
|
+
if (!isDashboard || !isObj(data))
|
|
309
|
+
return data;
|
|
310
|
+
const requested = args['indicatorDashboards'];
|
|
311
|
+
const stat = data['statistic'];
|
|
312
|
+
const columns = data['columns'];
|
|
313
|
+
const emptyStat = stat == null || (isObj(stat) && Object.keys(stat).length === 0);
|
|
314
|
+
const emptyColumns = !Array.isArray(columns) || columns.length === 0;
|
|
315
|
+
if (!emptyStat && !emptyColumns)
|
|
316
|
+
return data;
|
|
317
|
+
const { unknown } = partitionIndicatorDashboards(requested);
|
|
318
|
+
const hintParts = [
|
|
319
|
+
'indicatorDashboards 可能传错,导致 statistic/columns 为空。',
|
|
320
|
+
'面板传参名≠统计维度后缀(如 fps_mean、frametime_min 是返回字段,不是面板名)。',
|
|
321
|
+
'合法示例:fps_avg、drawcall_cnt_max、frametime@gt_40_pct(含 @ 等特殊字符)。',
|
|
322
|
+
`误传示例:${INDICATOR_DASHBOARD_NEGATIVE_EXAMPLES.join('、')}。`,
|
|
323
|
+
'请先调 gotonline_overview_indicator_dashboard_keys 核对全量合法面板名。',
|
|
324
|
+
];
|
|
325
|
+
if (unknown.length) {
|
|
326
|
+
hintParts.unshift(`未识别的面板名:${unknown.join('、')}。`);
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
...data,
|
|
330
|
+
_hint: hintParts.join(' '),
|
|
331
|
+
};
|
|
332
|
+
}
|
|
261
333
|
const RECORD_ARRAY_KEYS = /^gotOnline.*Records$/;
|
|
262
334
|
/**
|
|
263
335
|
* 报告列表接口一次返回、按项目组分组。但上游会把同一份报告挂到每个项目组下
|
|
@@ -340,9 +412,9 @@ export function annotateProjectGroups(data) {
|
|
|
340
412
|
content,
|
|
341
413
|
_deduplicated: true,
|
|
342
414
|
_uniqueReportCount: placed,
|
|
343
|
-
_dedupeNote: `上游把同一份报告重复挂在多个项目组下,已按 link 中 project=
|
|
415
|
+
_dedupeNote: `上游把同一份报告重复挂在多个项目组下,已按 link 中 project= 合并归位,去重后本页 ${placed} 份` +
|
|
344
416
|
(orphaned ? `(其中 ${orphaned} 份所属项目组不在本页,已单独列出)` : '') +
|
|
345
|
-
'
|
|
417
|
+
'。按项目组统计请用本页 _uniqueReportCount / 各组 Records;跨页汇总须自行按 dataKey 去重,勿把各页条数简单相加。',
|
|
346
418
|
};
|
|
347
419
|
}
|
|
348
420
|
/** MCP 的 content.text 必须是字符串,undefined 会让客户端校验失败。 */
|
|
@@ -356,22 +428,74 @@ function asText(value) {
|
|
|
356
428
|
export function makeHandler(op, client, defaultMaxRows, maxChars) {
|
|
357
429
|
return async (args) => {
|
|
358
430
|
try {
|
|
359
|
-
const apiVersion = args['apiVersion'] ?? op
|
|
431
|
+
const apiVersion = args['apiVersion'] ?? defaultApiVersionFor(op);
|
|
360
432
|
const wantDownload = args['download'] ?? true;
|
|
361
433
|
const maxRows = args['maxRows'] ?? defaultMaxRows;
|
|
434
|
+
const { filter: curveFilter, cleaned: argsForApi } = isIndicatorCurveDashboard(op.path)
|
|
435
|
+
? extractCurveFilterArgs(args)
|
|
436
|
+
: { filter: {}, cleaned: args };
|
|
437
|
+
let acceptedDashboards = [];
|
|
438
|
+
let unknownDashboards = [];
|
|
439
|
+
if (typeof argsForApi['indicatorDashboards'] === 'string') {
|
|
440
|
+
const part = partitionIndicatorDashboards(argsForApi['indicatorDashboards']);
|
|
441
|
+
acceptedDashboards = part.accepted;
|
|
442
|
+
unknownDashboards = part.unknown;
|
|
443
|
+
if (part.all.length && !acceptedDashboards.length) {
|
|
444
|
+
return {
|
|
445
|
+
content: [
|
|
446
|
+
{
|
|
447
|
+
type: 'text',
|
|
448
|
+
text: asText({
|
|
449
|
+
error: 'PARAMETERS_WRONG',
|
|
450
|
+
message: `indicatorDashboards 全部无法识别:${unknownDashboards.join('、')}`,
|
|
451
|
+
_unknownDashboards: unknownDashboards,
|
|
452
|
+
_acceptedDashboards: [],
|
|
453
|
+
_hint: `这些是面板标识符,不是统计维度后缀。` +
|
|
454
|
+
`误传示例:${INDICATOR_DASHBOARD_NEGATIVE_EXAMPLES.join('、')};` +
|
|
455
|
+
`合法示例:fps_avg、frametime@gt_40_pct。` +
|
|
456
|
+
`请调 gotonline_overview_indicator_dashboard_keys 获取全量 ${INDICATOR_DASHBOARD_KEYS.length} 个合法值。`,
|
|
457
|
+
}),
|
|
458
|
+
},
|
|
459
|
+
],
|
|
460
|
+
isError: true,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
if (acceptedDashboards.length) {
|
|
464
|
+
argsForApi['indicatorDashboards'] = acceptedDashboards.join(',');
|
|
465
|
+
}
|
|
466
|
+
}
|
|
362
467
|
const query = {};
|
|
363
468
|
for (const p of op.query)
|
|
364
|
-
if (
|
|
365
|
-
query[p.name] =
|
|
469
|
+
if (argsForApi[p.name] !== undefined)
|
|
470
|
+
query[p.name] = argsForApi[p.name];
|
|
366
471
|
let body;
|
|
367
472
|
if (op.body.length) {
|
|
368
473
|
body = {};
|
|
369
474
|
for (const p of op.body)
|
|
370
|
-
if (
|
|
371
|
-
body[p.name] =
|
|
475
|
+
if (argsForApi[p.name] !== undefined)
|
|
476
|
+
body[p.name] = argsForApi[p.name];
|
|
372
477
|
}
|
|
373
478
|
const raw = await client.call(op.method, op.path, apiVersion, query, body);
|
|
374
|
-
|
|
479
|
+
let processed = annotateProjectGroups(annotateCurveAxes(raw));
|
|
480
|
+
if (isIndicatorStatisticDashboard(op.path) && acceptedDashboards.length) {
|
|
481
|
+
processed = annotateStatisticDashboard(processed, acceptedDashboards, unknownDashboards);
|
|
482
|
+
}
|
|
483
|
+
else if (isIndicatorCurveDashboard(op.path)) {
|
|
484
|
+
if (acceptedDashboards.length || unknownDashboards.length) {
|
|
485
|
+
processed = isObj(processed)
|
|
486
|
+
? {
|
|
487
|
+
...processed,
|
|
488
|
+
_acceptedDashboards: acceptedDashboards,
|
|
489
|
+
...(unknownDashboards.length ? { _unknownDashboards: unknownDashboards } : {}),
|
|
490
|
+
}
|
|
491
|
+
: processed;
|
|
492
|
+
}
|
|
493
|
+
if (hasCurveFilter(curveFilter)) {
|
|
494
|
+
processed = filterCurveData(processed, curveFilter);
|
|
495
|
+
processed = annotateCurveAxes(processed);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
const data = annotateDashboardEmptyResult(op, processed, args);
|
|
375
499
|
const presignUrl = op.returnsPresignUrl && data && typeof data === 'object'
|
|
376
500
|
? data['dataPresignUrl']
|
|
377
501
|
: undefined;
|
package/dist/version-guide.d.ts
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* 挂到所有带 indicatorDashboards 的工具 description,避免模型见 _max 只读峰值。
|
|
10
10
|
*/
|
|
11
11
|
export declare const INDICATOR_DASHBOARD_PANEL_GUIDE: string;
|
|
12
|
+
/**
|
|
13
|
+
* 堆栈 / 卡顿工具路由。卡顿树已是「多帧合并后的根因视图」,
|
|
14
|
+
* 禁止误导成「对每个 >40ms 帧循环拉指定帧树再聚类」。
|
|
15
|
+
*/
|
|
16
|
+
export declare const STACK_ANALYSIS_GUIDE: string;
|
|
12
17
|
/** 写入工具 description 的「选用规则」块,key 为 operation id。 */
|
|
13
18
|
export declare const VERSION_GUIDE: Record<string, string>;
|
|
14
19
|
export declare function versionGuideFor(opId: string): string | undefined;
|