snapshot-checker 0.6.3 → 0.7.3

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 (131) hide show
  1. package/README.md +209 -15
  2. package/dist/commands/forkall.d.ts.map +1 -1
  3. package/dist/commands/forkall.js +23 -16
  4. package/dist/commands/forkall.js.map +1 -1
  5. package/dist/commands/report-user.d.ts +25 -0
  6. package/dist/commands/report-user.d.ts.map +1 -0
  7. package/dist/commands/report-user.js +17 -0
  8. package/dist/commands/report-user.js.map +1 -0
  9. package/dist/commands/report.d.ts +1 -26
  10. package/dist/commands/report.d.ts.map +1 -1
  11. package/dist/commands/report.js +6 -425
  12. package/dist/commands/report.js.map +1 -1
  13. package/dist/demos/timeout-demo.d.ts.map +1 -1
  14. package/dist/demos/timeout-demo.js +1 -1
  15. package/dist/demos/timeout-demo.js.map +1 -1
  16. package/dist/src/bin.d.ts +3 -0
  17. package/dist/src/bin.d.ts.map +1 -0
  18. package/dist/src/bin.js +57 -0
  19. package/dist/src/bin.js.map +1 -0
  20. package/dist/src/cli.js +33 -55
  21. package/dist/src/cli.js.map +1 -1
  22. package/dist/src/executor.d.ts +5 -5
  23. package/dist/src/executor.d.ts.map +1 -1
  24. package/dist/src/executor.js +3 -3
  25. package/dist/src/executor.js.map +1 -1
  26. package/dist/src/{groupSpecs.d.ts → group_specs.d.ts} +2 -2
  27. package/dist/src/group_specs.d.ts.map +1 -0
  28. package/dist/src/{groupSpecs.js → group_specs.js} +1 -1
  29. package/dist/src/group_specs.js.map +1 -0
  30. package/dist/src/index.d.ts +4 -4
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +3 -3
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/lib/format.d.ts +30 -0
  35. package/dist/src/lib/format.d.ts.map +1 -0
  36. package/dist/src/lib/format.js +76 -0
  37. package/dist/src/lib/format.js.map +1 -0
  38. package/dist/src/lib/{hostCommands.d.ts → host_commands.d.ts} +6 -1
  39. package/dist/src/lib/host_commands.d.ts.map +1 -0
  40. package/dist/src/lib/{hostCommands.js → host_commands.js} +9 -1
  41. package/dist/src/lib/host_commands.js.map +1 -0
  42. package/dist/src/lib/perf_decode.d.ts +25 -0
  43. package/dist/src/lib/perf_decode.d.ts.map +1 -0
  44. package/dist/src/lib/perf_decode.js +90 -0
  45. package/dist/src/lib/perf_decode.js.map +1 -0
  46. package/dist/src/lib/pipeline.d.ts +108 -0
  47. package/dist/src/lib/pipeline.d.ts.map +1 -0
  48. package/dist/src/lib/pipeline.js +294 -0
  49. package/dist/src/lib/pipeline.js.map +1 -0
  50. package/dist/src/lib/preflight.d.ts +2 -0
  51. package/dist/src/lib/preflight.d.ts.map +1 -0
  52. package/dist/src/lib/preflight.js +45 -0
  53. package/dist/src/lib/preflight.js.map +1 -0
  54. package/dist/src/lib/presets.d.ts +46 -27
  55. package/dist/src/lib/presets.d.ts.map +1 -1
  56. package/dist/src/lib/presets.js +187 -216
  57. package/dist/src/lib/presets.js.map +1 -1
  58. package/dist/src/lib/programmatic.d.ts +30 -0
  59. package/dist/src/lib/programmatic.d.ts.map +1 -0
  60. package/dist/src/lib/programmatic.js +40 -0
  61. package/dist/src/lib/programmatic.js.map +1 -0
  62. package/dist/src/lib/report_scenario.d.ts +50 -0
  63. package/dist/src/lib/report_scenario.d.ts.map +1 -0
  64. package/dist/src/lib/report_scenario.js +497 -0
  65. package/dist/src/lib/report_scenario.js.map +1 -0
  66. package/dist/src/lib/scenario.d.ts +17 -3
  67. package/dist/src/lib/scenario.d.ts.map +1 -1
  68. package/dist/src/lib/scenario.js +34 -8
  69. package/dist/src/lib/scenario.js.map +1 -1
  70. package/dist/src/lib/version.d.ts +12 -0
  71. package/dist/src/lib/version.d.ts.map +1 -0
  72. package/dist/src/lib/version.js +51 -0
  73. package/dist/src/lib/version.js.map +1 -0
  74. package/dist/src/logger.d.ts +31 -1
  75. package/dist/src/logger.d.ts.map +1 -1
  76. package/dist/src/logger.js +182 -16
  77. package/dist/src/logger.js.map +1 -1
  78. package/dist/src/{runCommand.d.ts → run_command.d.ts} +1 -1
  79. package/dist/src/run_command.d.ts.map +1 -0
  80. package/dist/src/{runCommand.js → run_command.js} +5 -6
  81. package/dist/src/run_command.js.map +1 -0
  82. package/dist/src/{runGroups.d.ts → run_groups.d.ts} +12 -3
  83. package/dist/src/run_groups.d.ts.map +1 -0
  84. package/dist/src/{runGroups.js → run_groups.js} +28 -13
  85. package/dist/src/run_groups.js.map +1 -0
  86. package/dist/src/runners/{backgroundExecutor.d.ts → background_executor.d.ts} +3 -3
  87. package/dist/src/runners/background_executor.d.ts.map +1 -0
  88. package/dist/src/runners/{backgroundExecutor.js → background_executor.js} +3 -3
  89. package/dist/src/runners/background_executor.js.map +1 -0
  90. package/dist/src/runners/{builtinRunner.d.ts → builtin_runner.d.ts} +1 -1
  91. package/dist/src/runners/builtin_runner.d.ts.map +1 -0
  92. package/dist/src/runners/{builtinRunner.js → builtin_runner.js} +1 -1
  93. package/dist/src/runners/builtin_runner.js.map +1 -0
  94. package/dist/src/runners/{embedRunner.d.ts → embed_runner.d.ts} +1 -1
  95. package/dist/src/runners/embed_runner.d.ts.map +1 -0
  96. package/dist/src/runners/{embedRunner.js → embed_runner.js} +2 -2
  97. package/dist/src/runners/{embedRunner.js.map → embed_runner.js.map} +1 -1
  98. package/dist/src/runners/index.d.ts +5 -5
  99. package/dist/src/runners/index.d.ts.map +1 -1
  100. package/dist/src/runners/index.js +4 -4
  101. package/dist/src/runners/index.js.map +1 -1
  102. package/dist/src/runners/{platformShellExecutor.d.ts → platform_shell_executor.d.ts} +1 -1
  103. package/dist/src/runners/platform_shell_executor.d.ts.map +1 -0
  104. package/dist/src/runners/{platformShellExecutor.js → platform_shell_executor.js} +2 -2
  105. package/dist/src/runners/platform_shell_executor.js.map +1 -0
  106. package/dist/src/runners/{shellRunner.d.ts → shell_runner.d.ts} +1 -1
  107. package/dist/src/runners/shell_runner.d.ts.map +1 -0
  108. package/dist/src/runners/{shellRunner.js → shell_runner.js} +11 -16
  109. package/dist/src/runners/shell_runner.js.map +1 -0
  110. package/dist/src/runners/types.d.ts.map +1 -1
  111. package/dist/src/types.d.ts +2 -2
  112. package/dist/src/types.d.ts.map +1 -1
  113. package/dist/src/types.js.map +1 -1
  114. package/package.json +13 -4
  115. package/dist/src/groupSpecs.d.ts.map +0 -1
  116. package/dist/src/groupSpecs.js.map +0 -1
  117. package/dist/src/lib/hostCommands.d.ts.map +0 -1
  118. package/dist/src/lib/hostCommands.js.map +0 -1
  119. package/dist/src/runCommand.d.ts.map +0 -1
  120. package/dist/src/runCommand.js.map +0 -1
  121. package/dist/src/runGroups.d.ts.map +0 -1
  122. package/dist/src/runGroups.js.map +0 -1
  123. package/dist/src/runners/backgroundExecutor.d.ts.map +0 -1
  124. package/dist/src/runners/backgroundExecutor.js.map +0 -1
  125. package/dist/src/runners/builtinRunner.d.ts.map +0 -1
  126. package/dist/src/runners/builtinRunner.js.map +0 -1
  127. package/dist/src/runners/embedRunner.d.ts.map +0 -1
  128. package/dist/src/runners/platformShellExecutor.d.ts.map +0 -1
  129. package/dist/src/runners/platformShellExecutor.js.map +0 -1
  130. package/dist/src/runners/shellRunner.d.ts.map +0 -1
  131. package/dist/src/runners/shellRunner.js.map +0 -1
package/dist/src/cli.js CHANGED
@@ -1,38 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { program, Option } from "commander";
3
- import { existsSync, readdirSync, readFileSync } from "node:fs";
3
+ import { readdirSync } from "node:fs";
4
4
  import { dirname, extname, basename, join } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { getGroupChunks, runGroupChunks } from "./executor.js";
7
- import { attachLoggerFileSink, logger, resolveLogDumpPath, setGlobalLogLevelFromCli, SNAPSHOT_CHECKER_LOG_LEVEL_CHOICES, } from "./logger.js";
8
- import { parseGroupSpecs } from "./groupSpecs.js";
7
+ import { attachLoggerFileSink, createModuleLogger, resolveLogDumpPath, setGlobalLogLevelFromCli, SNAPSHOT_CHECKER_LOG_LEVEL_CHOICES, } from "./logger.js";
8
+ import { parseGroupSpecs } from "./group_specs.js";
9
+ import { buildApplyOptionsInput } from "./lib/scenario.js";
10
+ import { formatInvocationCommandLine, readSnapshotCheckerVersion, } from "./lib/version.js";
9
11
  import { formatCommandKindForLog, } from "./types.js";
12
+ const logger = createModuleLogger(import.meta.url);
10
13
  const cliModuleDir = dirname(fileURLToPath(import.meta.url));
11
- /**
12
- * 从磁盘向上查找本包 `package.json`(`name === snapshot-checker`),与 `src/cli.ts` 或 `dist/src/cli.js` 位置无关。
13
- */
14
- function readSnapshotCheckerVersion() {
15
- let dir = cliModuleDir;
16
- for (let i = 0; i < 12; i++) {
17
- const pkgPath = join(dir, "package.json");
18
- if (existsSync(pkgPath)) {
19
- try {
20
- const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
21
- if (pkg.name === "snapshot-checker" && typeof pkg.version === "string") {
22
- return pkg.version;
23
- }
24
- }
25
- catch {
26
- /* 继续向上 */
27
- }
28
- }
29
- const parent = dirname(dir);
30
- if (parent === dir)
31
- break;
32
- dir = parent;
33
- }
34
- return "0.0.0-dev";
35
- }
36
14
  const customCommands = [];
37
15
  /**
38
16
  * 在「Options:」区块内:先列出无 helpGroup 的选项,再按组输出带 helpGroup 的选项;
@@ -97,17 +75,11 @@ function formatHelpWithScenarioOptionGroups(cmd, helper) {
97
75
  output = output.concat(["Options:", formatList(optionList), ""]);
98
76
  }
99
77
  if (helper.showGlobalOptions) {
100
- const globalOptionList = helper
101
- .visibleGlobalOptions(cmd)
102
- .map((option) => {
78
+ const globalOptionList = helper.visibleGlobalOptions(cmd).map((option) => {
103
79
  return formatItem(helper.optionTerm(option), helper.optionDescription(option));
104
80
  });
105
81
  if (globalOptionList.length > 0) {
106
- output = output.concat([
107
- "Global Options:",
108
- formatList(globalOptionList),
109
- "",
110
- ]);
82
+ output = output.concat(["Global Options:", formatList(globalOptionList), ""]);
111
83
  }
112
84
  }
113
85
  const commandList = helper.visibleCommands(cmd).map((sub) => {
@@ -247,7 +219,10 @@ async function registerScenarioCommands(rootProgram) {
247
219
  ? undefined
248
220
  : resolveLogDumpPath(globals);
249
221
  const detachLog = logDumpPath !== undefined
250
- ? attachLoggerFileSink(logDumpPath)
222
+ ? attachLoggerFileSink(logDumpPath, {
223
+ commandLine: formatInvocationCommandLine(),
224
+ version: readSnapshotCheckerVersion(),
225
+ })
251
226
  : undefined;
252
227
  try {
253
228
  let scenarioGroups = mod.groups;
@@ -259,16 +234,13 @@ async function registerScenarioCommands(rootProgram) {
259
234
  }
260
235
  // 可选:基于已解析 CLI 重写 groups / defaultGroupOrder
261
236
  if (typeof mod.applyOptions === "function") {
262
- const hdcTarget = globals.hdcTarget;
263
- const parseConcurrency = globals.parseConcurrency;
264
237
  const transformed = mod.applyOptions({
265
238
  groups: scenarioGroups,
266
239
  defaultGroupOrder: scenarioDefaultOrder,
267
- options: {
268
- ...opts,
269
- ...(typeof hdcTarget === "string" ? { hdcTarget } : {}),
270
- ...(parseConcurrency !== undefined ? { parseConcurrency } : {}),
271
- },
240
+ options: buildApplyOptionsInput(opts, {
241
+ hdcTarget: globals.hdcTarget,
242
+ parseConcurrency: globals.parseConcurrency,
243
+ }),
272
244
  });
273
245
  if (transformed?.groups) {
274
246
  scenarioGroups = transformed.groups;
@@ -344,7 +316,7 @@ async function registerScenarioCommands(rootProgram) {
344
316
  const chunks = getGroupChunks(scenarioGroups, specs, {
345
317
  ignorePlatform,
346
318
  });
347
- const commandsToRun = chunks.flat();
319
+ const commandsToRun = chunks.flatMap((chunk) => chunk.commands);
348
320
  console.log(`\n(dry-run) [${commandName}] 将要执行的命令:\n`);
349
321
  if (unknownGroups.length > 0) {
350
322
  logger.warn(`未找到以下 group:${unknownGroups.join(", ")}`);
@@ -356,16 +328,22 @@ async function registerScenarioCommands(rootProgram) {
356
328
  console.log("");
357
329
  return;
358
330
  }
359
- commandsToRun.forEach((c, i) => {
360
- const text = getCommandTextForDisplay(c);
361
- const backgroundTag = getBackgroundTag(c);
362
- const desc = c.description != null && c.description !== ""
363
- ? ` ${c.description}`
364
- : text
365
- ? ` ${text}`
366
- : "";
367
- console.log(` ${i + 1}. [${formatCommandKindForLog(c, ignorePlatform)}]${backgroundTag} ${text || "(无命令)"}${desc}`);
368
- });
331
+ let cmdIndex = 0;
332
+ for (const chunk of chunks) {
333
+ const repeatSuffix = chunk.repeat > 1 ? `(${chunk.round}/${chunk.repeat})` : "";
334
+ console.log(`\n [group] ${chunk.name}${repeatSuffix} ${chunk.commands.length} 条命令`);
335
+ for (const c of chunk.commands) {
336
+ cmdIndex += 1;
337
+ const text = getCommandTextForDisplay(c);
338
+ const backgroundTag = getBackgroundTag(c);
339
+ const desc = c.description != null && c.description !== ""
340
+ ? ` — ${c.description}`
341
+ : text
342
+ ? ` — ${text}`
343
+ : "";
344
+ console.log(` ${cmdIndex}. [${formatCommandKindForLog(c, ignorePlatform)}]${backgroundTag} ${text || "(无命令)"}${desc}`);
345
+ }
346
+ }
369
347
  console.log("");
370
348
  return;
371
349
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- /** 对外导出:`runCommand`、`runGroups` */
2
- export { executeOne, executeAll, finalizeBackgroundProcesses, isSupportedOnCurrentPlatform, } from "./runCommand.js";
3
- export type { ExecuteAllOptions, ExecuteOneOptions } from "./runCommand.js";
4
- export { getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, type GroupSpec, } from "./runGroups.js";
5
- export type { RunGroupChunksOptions } from "./runGroups.js";
1
+ /** 对外导出:`run_command`、`run_groups` */
2
+ export { executeOne, executeAll, finalizeBackgroundProcesses, isSupportedOnCurrentPlatform, } from "./run_command.js";
3
+ export type { ExecuteAllOptions, ExecuteOneOptions } from "./run_command.js";
4
+ export { getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, type GroupChunk, type GroupSpec, } from "./run_groups.js";
5
+ export type { RunGroupChunksOptions } from "./run_groups.js";
6
6
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,KAAK,SAAS,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
- /** 对外导出:`runCommand`、`runGroups` */
2
- export { executeOne, executeAll, finalizeBackgroundProcesses, isSupportedOnCurrentPlatform, } from "./runCommand.js";
3
- export { getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, } from "./runGroups.js";
1
+ /** 对外导出:`run_command`、`run_groups` */
2
+ export { executeOne, executeAll, finalizeBackgroundProcesses, isSupportedOnCurrentPlatform, } from "./run_command.js";
3
+ export { getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, } from "./run_groups.js";
4
4
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GAEf,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GAGf,MAAM,iBAAiB,CAAC"}
@@ -5,6 +5,6 @@
5
5
  * - 多条可拆在多个 argv,或写在一条里用逗号分隔;
6
6
  * - `name` 表示执行一次,`name:N` 表示该组重复 N 次(非法或小于 1 时按 1 处理)。
7
7
  */
8
- import type { GroupSpec } from "./runGroups.js";
8
+ import type { GroupSpec } from "./run_groups.js";
9
9
  export declare function parseGroupSpecs(raw: string[] | undefined, defaultOrder: string[]): GroupSpec[];
10
- //# sourceMappingURL=groupSpecs.d.ts.map
10
+ //# sourceMappingURL=group_specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_specs.d.ts","sourceRoot":"","sources":["../../src/group_specs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,EACzB,YAAY,EAAE,MAAM,EAAE,GACrB,SAAS,EAAE,CA8Bb"}
@@ -24,4 +24,4 @@ export function parseGroupSpecs(raw, defaultOrder) {
24
24
  }
25
25
  return specs;
26
26
  }
27
- //# sourceMappingURL=groupSpecs.js.map
27
+ //# sourceMappingURL=group_specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_specs.js","sourceRoot":"","sources":["../../src/group_specs.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,eAAe,CAC7B,GAAyB,EACzB,YAAsB;IAEtB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,YAAY,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,7 +1,7 @@
1
- export { executeOne, executeAll, finalizeBackgroundProcesses, getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, isSupportedOnCurrentPlatform, type GroupSpec, type RunGroupChunksOptions, type ExecuteAllOptions, } from "./executor.js";
2
- export { parseGroupSpecs } from "./groupSpecs.js";
3
- export { resolveScenario, runScenarioGroups, normalizeGroupCliArg, type ScenarioModuleLike, type RunScenarioGroupsInput, type RunScenarioGroupsResult, } from "./lib/scenario.js";
1
+ export { executeOne, executeAll, finalizeBackgroundProcesses, getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, isSupportedOnCurrentPlatform, type GroupChunk, type GroupSpec, type RunGroupChunksOptions, type ExecuteAllOptions, } from "./executor.js";
2
+ export { parseGroupSpecs } from "./group_specs.js";
3
+ export { buildApplyOptionsInput, resolveScenario, runScenarioGroups, normalizeGroupCliArg, type ScenarioGlobalOptions, type ScenarioModuleLike, type RunScenarioGroupsInput, type RunScenarioGroupsResult, } from "./lib/scenario.js";
4
4
  export { createHdcCli, type HdcCli } from "./lib/hdc.js";
5
- export { CommandKind, createCommandContext, getCurrentPlatformKind, } from "./types.js";
5
+ export { CommandKind, createCommandContext, getCurrentPlatformKind } from "./types.js";
6
6
  export type { CommandContext, CommandDef, CommandResult, RunOptions, Groups, } from "./types.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,cAAc,EACd,UAAU,EACV,aAAa,EACb,UAAU,EACV,MAAM,GACP,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACvF,YAAY,EACV,cAAc,EACd,UAAU,EACV,aAAa,EACb,UAAU,EACV,MAAM,GACP,MAAM,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { executeOne, executeAll, finalizeBackgroundProcesses, getCommandsToRun, getCommandsToRunWithRepeat, getGroupChunks, runGroupChunks, isSupportedOnCurrentPlatform, } from "./executor.js";
2
- export { parseGroupSpecs } from "./groupSpecs.js";
3
- export { resolveScenario, runScenarioGroups, normalizeGroupCliArg, } from "./lib/scenario.js";
2
+ export { parseGroupSpecs } from "./group_specs.js";
3
+ export { buildApplyOptionsInput, resolveScenario, runScenarioGroups, normalizeGroupCliArg, } from "./lib/scenario.js";
4
4
  export { createHdcCli } from "./lib/hdc.js";
5
- export { CommandKind, createCommandContext, getCurrentPlatformKind, } from "./types.js";
5
+ export { CommandKind, createCommandContext, getCurrentPlatformKind } from "./types.js";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,4BAA4B,GAI7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GAIrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,4BAA4B,GAK7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GAKrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { FieldDictTransformFn } from "hiperf_txt_parser";
2
+ import type { HdcCli } from "./hdc.js";
3
+ import { type TraceEventFormat } from "hmtrace-parser";
4
+ /** analysis 阶段从设备 ftrace `format` 文件读取 trace 格式 */
5
+ export declare const AUTO_TRACE_FORMAT_PROFILE = "auto";
6
+ /** `--trace-format-profile` 选项说明(可选值来自 hmtrace-parser {@link getTraceEventFormatProfiles} + auto) */
7
+ export declare const TRACE_FORMAT_PROFILE_CLI_DESCRIPTION: string;
8
+ /**
9
+ * 将用户传入的 profile 规范为 hmtrace-parser 已登记名或 `auto`;未知时回退 `default`。
10
+ * 与 {@link getTraceEventFormats} 的回退语义一致,并供 {@link backtrackFS} 使用同一 profile 名。
11
+ */
12
+ export declare function resolveTraceFormatProfile(traceFormatProfile: string, options?: {
13
+ stageName?: string;
14
+ }): string;
15
+ /** auto profile 下单个 ftrace format 路径及其字段字典变换策略 */
16
+ export type TraceFormatAutoEntry = {
17
+ formatPath: string;
18
+ transformFieldDict: FieldDictTransformFn;
19
+ };
20
+ export type TraceFormatAutoConfig = {
21
+ hdcCli: HdcCli;
22
+ formatEntries: readonly TraceFormatAutoEntry[];
23
+ /** 测试注入:替代 `executeOne` + {@link HdcCli.shell} */
24
+ runShell?: (run: string) => Promise<string>;
25
+ };
26
+ /** 经 hdc `shell cat` 拉取各 format 路径并组装 {@link TraceEventFormat} 列表 */
27
+ export declare function fetchTraceEventFormatsFromDevice(config: TraceFormatAutoConfig): Promise<TraceEventFormat[]>;
28
+ /** 将相对 `tracing/events/` 的路径或已是绝对路径规范为 ftrace 事件目录 */
29
+ export declare function resolveTracingEventPermissionPath(eventPath: string): string;
30
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/lib/format.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAA+B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpF,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,qGAAqG;AACrG,eAAO,MAAM,oCAAoC,QAI7C,CAAC;AAEL;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,MAAM,CAmBR;AAED,kDAAkD;AAClD,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,oBAAoB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C,CAAC;AA2BF,qEAAqE;AACrE,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiB7B;AAID,sDAAsD;AACtD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,76 @@
1
+ /** trace 格式 profile 解析与从设备读取 ftrace format */
2
+ import { createModuleLogger } from "../logger.js";
3
+ const logger = createModuleLogger(import.meta.url);
4
+ import { SHELL_PLATFORM_KINDS } from "../types.js";
5
+ import { executeOne } from "../run_command.js";
6
+ import { getTraceEventFormatProfiles } from "hmtrace-parser";
7
+ /** analysis 阶段从设备 ftrace `format` 文件读取 trace 格式 */
8
+ export const AUTO_TRACE_FORMAT_PROFILE = "auto";
9
+ /** `--trace-format-profile` 选项说明(可选值来自 hmtrace-parser {@link getTraceEventFormatProfiles} + auto) */
10
+ export const TRACE_FORMAT_PROFILE_CLI_DESCRIPTION = (() => {
11
+ const names = getTraceEventFormatProfiles();
12
+ const listed = names.length > 0 ? `auto、${names.join("、")}` : "auto";
13
+ return `trace 格式 profile,默认 default;可选:${listed};auto 在 analysis 从设备 format 读取`;
14
+ })();
15
+ /**
16
+ * 将用户传入的 profile 规范为 hmtrace-parser 已登记名或 `auto`;未知时回退 `default`。
17
+ * 与 {@link getTraceEventFormats} 的回退语义一致,并供 {@link backtrackFS} 使用同一 profile 名。
18
+ */
19
+ export function resolveTraceFormatProfile(traceFormatProfile, options) {
20
+ const normalized = traceFormatProfile.trim();
21
+ if (normalized === AUTO_TRACE_FORMAT_PROFILE) {
22
+ return AUTO_TRACE_FORMAT_PROFILE;
23
+ }
24
+ const availableProfiles = getTraceEventFormatProfiles();
25
+ const selectedProfile = availableProfiles.includes(normalized)
26
+ ? normalized
27
+ : "default";
28
+ if (selectedProfile !== normalized &&
29
+ options?.stageName != null &&
30
+ options.stageName.length > 0) {
31
+ logger.warn(`[${options.stageName}] profile 未知 "${traceFormatProfile}",已用 default`);
32
+ }
33
+ return selectedProfile;
34
+ }
35
+ async function catDeviceFileViaHdc(hdcCli, remotePath, runShell) {
36
+ const run = hdcCli.shell(`"cat ${remotePath}"`);
37
+ if (runShell) {
38
+ return runShell(run);
39
+ }
40
+ const result = await executeOne({
41
+ kind: SHELL_PLATFORM_KINDS,
42
+ description: `cat ${remotePath}`,
43
+ run,
44
+ }, { streamOutput: false });
45
+ const text = result.stdout ?? "";
46
+ if (!result.success || text.length === 0) {
47
+ const detail = result.stderr?.trim() || `exitCode=${result.exitCode}`;
48
+ throw new Error(`cat ${remotePath} 失败: ${detail}`);
49
+ }
50
+ return text;
51
+ }
52
+ /** 经 hdc `shell cat` 拉取各 format 路径并组装 {@link TraceEventFormat} 列表 */
53
+ export async function fetchTraceEventFormatsFromDevice(config) {
54
+ const { hdcCli, formatEntries, runShell } = config;
55
+ const uniqueByPath = new Map();
56
+ for (const entry of formatEntries) {
57
+ if (!uniqueByPath.has(entry.formatPath)) {
58
+ uniqueByPath.set(entry.formatPath, entry);
59
+ }
60
+ }
61
+ const formats = [];
62
+ for (const { formatPath, transformFieldDict } of uniqueByPath.values()) {
63
+ const text = await catDeviceFileViaHdc(hdcCli, formatPath, runShell);
64
+ formats.push({
65
+ text,
66
+ transformFieldDict,
67
+ });
68
+ }
69
+ return formats;
70
+ }
71
+ const TRACING_EVENTS_DIR = "/sys/kernel/tracing/events";
72
+ /** 将相对 `tracing/events/` 的路径或已是绝对路径规范为 ftrace 事件目录 */
73
+ export function resolveTracingEventPermissionPath(eventPath) {
74
+ return eventPath.startsWith("/") ? eventPath : `${TRACING_EVENTS_DIR}/${eventPath}`;
75
+ }
76
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/lib/format.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@ export declare function buildUnlinkEmbedCommand(input: {
11
11
  filePath: string;
12
12
  description?: string;
13
13
  }): CommandDef;
14
+ /** 构建 embed 内置 `sleep` 命令(宿主等待,非设备 shell)。 */
15
+ export declare function buildSleepEmbedCommand(input: {
16
+ seconds: number;
17
+ description?: string;
18
+ }): CommandDef;
14
19
  /** 运行 Python 脚本并等待退出;`exitCode === 0` 为成功。 */
15
20
  export declare function runPythonScript(scriptPath: string, args: string[]): Promise<{
16
21
  success: boolean;
@@ -23,4 +28,4 @@ export declare function buildPythonScriptCommand(input: {
23
28
  args: string[];
24
29
  description?: string;
25
30
  }): CommandDef;
26
- //# sourceMappingURL=hostCommands.d.ts.map
31
+ //# sourceMappingURL=host_commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host_commands.d.ts","sourceRoot":"","sources":["../../../src/lib/host_commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQ3D;AAED,0CAA0C;AAC1C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,CAMb;AAED,8CAA8C;AAC9C,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,CAMb;AAMD,8CAA8C;AAC9C,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BxE;AAED,sDAAsD;AACtD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,CAiBb"}
@@ -47,6 +47,14 @@ export function buildUnlinkEmbedCommand(input) {
47
47
  run: `unlink ${JSON.stringify(input.filePath)}`,
48
48
  };
49
49
  }
50
+ /** 构建 embed 内置 `sleep` 命令(宿主等待,非设备 shell)。 */
51
+ export function buildSleepEmbedCommand(input) {
52
+ return {
53
+ kind: CommandKind.Embed,
54
+ description: input.description ?? `等待 ${input.seconds} 秒`,
55
+ run: `sleep ${input.seconds}`,
56
+ };
57
+ }
50
58
  function resolvePythonExecutable() {
51
59
  return process.platform === "win32" ? "python" : "python3";
52
60
  }
@@ -97,4 +105,4 @@ export function buildPythonScriptCommand(input) {
97
105
  },
98
106
  };
99
107
  }
100
- //# sourceMappingURL=hostCommands.js.map
108
+ //# sourceMappingURL=host_commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host_commands.js","sourceRoot":"","sources":["../../../src/lib/host_commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** analysis 阶段 perf trace 解码(hitrace 预处理 + hiperf 并行 decode) */
2
+ import { type HitraceSidecarOptions, type HitraceThreadIndexSnapshot, type HitraceTimeThresholdOnExceed, type HitraceTimeThresholdOptions, type PerfData } from "hiperf_txt_parser";
3
+ import { type TraceEventFormat } from "hmtrace-parser";
4
+ export type TraceFromSource = "hiperf" | "hitrace" | "mix";
5
+ export type TraceTimeThresholdOpt = HitraceTimeThresholdOnExceed;
6
+ /** 解析 report `--trace-from-threshold` / `--trace-from-threshold-opt` 为 hiperf hitrace `timeThreshold` */
7
+ export declare function resolveHitraceTimeThreshold(input: {
8
+ traceFrom: TraceFromSource;
9
+ thresholdMs?: number;
10
+ onExceed?: TraceTimeThresholdOpt;
11
+ }): HitraceTimeThresholdOptions | undefined;
12
+ export declare function defaultHitraceSidecarOptions(traceFrom: TraceFromSource, index?: HitraceThreadIndexSnapshot): HitraceSidecarOptions;
13
+ export declare function decodePerfDataWithProfile(input: {
14
+ perfData: PerfData;
15
+ selectedProfile: string;
16
+ formats?: readonly TraceEventFormat[];
17
+ traceFrom: TraceFromSource;
18
+ workspaceDir: string;
19
+ parseConcurrency: number;
20
+ dropFailedSamples: boolean;
21
+ /** report `--trace-from-threshold` / `--trace-from-threshold-opt`;`traceFrom=hiperf` 或未配置 threshold 时不生效 */
22
+ traceThresholdMs?: number;
23
+ traceThresholdOpt?: TraceTimeThresholdOpt;
24
+ }): Promise<PerfData>;
25
+ //# sourceMappingURL=perf_decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf_decode.d.ts","sourceRoot":"","sources":["../../../src/lib/perf_decode.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAMxB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAEjE,yGAAyG;AACzG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,2BAA2B,GAAG,SAAS,CAQ1C;AAYD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,eAAe,EAC1B,KAAK,CAAC,EAAE,0BAA0B,GACjC,qBAAqB,CAmBvB;AAYD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4GAA4G;IAC5G,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;CAC3C,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0DpB"}
@@ -0,0 +1,90 @@
1
+ /** analysis 阶段 perf trace 解码(hitrace 预处理 + hiperf 并行 decode) */
2
+ import { decodePerfRawData, hitracePolicyHitraceFirst, hitracePolicyPerfFirst, hitracePolicyPerfOnly, traceFormatTextsNeedMainThreadDecode, } from "hiperf_txt_parser";
3
+ import { buildHitraceIndexSnapshot, buildTraceRegistry, buildTraceRegistryFromProfile, getTraceEventFormats, } from "hmtrace-parser";
4
+ import path from "node:path";
5
+ import { createModuleLogger } from "../logger.js";
6
+ const logger = createModuleLogger(import.meta.url);
7
+ /** 解析 report `--trace-from-threshold` / `--trace-from-threshold-opt` 为 hiperf hitrace `timeThreshold` */
8
+ export function resolveHitraceTimeThreshold(input) {
9
+ if (input.traceFrom === "hiperf" || input.thresholdMs == null) {
10
+ return undefined;
11
+ }
12
+ return {
13
+ ms: input.thresholdMs,
14
+ onExceed: input.onExceed ?? "drop",
15
+ };
16
+ }
17
+ function applyTimeThreshold(hitrace, timeThreshold) {
18
+ if (timeThreshold == null) {
19
+ return hitrace;
20
+ }
21
+ return { ...hitrace, timeThreshold };
22
+ }
23
+ export function defaultHitraceSidecarOptions(traceFrom, index) {
24
+ switch (traceFrom) {
25
+ case "hitrace":
26
+ if (index == null) {
27
+ throw new Error("trace-from=hitrace 需要 hitrace 索引");
28
+ }
29
+ return hitracePolicyHitraceFirst(index);
30
+ case "mix":
31
+ if (index == null) {
32
+ throw new Error("trace-from=mix 需要 hitrace 索引");
33
+ }
34
+ return hitracePolicyPerfFirst(index);
35
+ case "hiperf":
36
+ return hitracePolicyPerfOnly(index);
37
+ default: {
38
+ const unsupported = traceFrom;
39
+ throw new Error(`不支持的 trace-from: ${String(unsupported)}`);
40
+ }
41
+ }
42
+ }
43
+ function formatsToRegistryInput(formats) {
44
+ return formats.map((f) => f.transformFieldDict
45
+ ? { text: f.text, transformFieldDict: f.transformFieldDict }
46
+ : f.text);
47
+ }
48
+ export async function decodePerfDataWithProfile(input) {
49
+ const formats = input.formats ?? getTraceEventFormats(input.selectedProfile);
50
+ const registry = input.formats
51
+ ? buildTraceRegistry(formats)
52
+ : buildTraceRegistryFromProfile(input.selectedProfile);
53
+ const formatTexts = formatsToRegistryInput(formats);
54
+ const timeThreshold = resolveHitraceTimeThreshold({
55
+ traceFrom: input.traceFrom,
56
+ thresholdMs: input.traceThresholdMs,
57
+ onExceed: input.traceThresholdOpt,
58
+ });
59
+ let hitrace;
60
+ if (input.traceFrom === "hiperf") {
61
+ hitrace = defaultHitraceSidecarOptions("hiperf");
62
+ logger.info(`trace-from=hiperf hitrace 策略=perfOnly,跳过索引构建 profile=${input.selectedProfile}`);
63
+ }
64
+ else {
65
+ const hitracePath = path.join(input.workspaceDir, "snapshot_hitrace.txt");
66
+ logger.info(`hitrace 预处理开始: ${hitracePath}`);
67
+ const index = await buildHitraceIndexSnapshot({ filePath: hitracePath }, formats, { tracePrintMode: "fieldDict" });
68
+ const threadCount = Object.keys(index).length;
69
+ const recordCount = Object.values(index).reduce((n, bucket) => n + bucket.length, 0);
70
+ logger.info(`hitrace 索引就绪: 线程=${threadCount} 记录=${recordCount}`);
71
+ hitrace = applyTimeThreshold(defaultHitraceSidecarOptions(input.traceFrom, index), timeThreshold);
72
+ const policyLabel = input.traceFrom === "hitrace" ? "hitraceFirst" : "perfFirst";
73
+ const thresholdLabel = timeThreshold == null || timeThreshold === "none"
74
+ ? ""
75
+ : ` timeThreshold=${timeThreshold.ms}ms onExceed=${timeThreshold.onExceed}`;
76
+ logger.info(`trace-from=${input.traceFrom} hitrace 策略=${policyLabel}${thresholdLabel} profile=${input.selectedProfile}`);
77
+ }
78
+ const workerCount = input.parseConcurrency;
79
+ const useParallel = workerCount > 1 && !traceFormatTextsNeedMainThreadDecode(formatTexts);
80
+ const decodeOptions = {
81
+ tracePrintMode: "fieldDict",
82
+ dropFailedSamples: input.dropFailedSamples,
83
+ workerCount,
84
+ ...(useParallel ? { formatTexts } : {}),
85
+ hitrace,
86
+ };
87
+ const result = decodePerfRawData(input.perfData, registry, decodeOptions);
88
+ return result instanceof Promise ? await result : result;
89
+ }
90
+ //# sourceMappingURL=perf_decode.js.map