snapshot-checker 0.7.5 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -55,7 +55,7 @@ npm run dev -- report --help
55
55
 
56
56
  checkpoint 镜像失效等风险的专项采集与分析。按 `--risk-targets` 选择 hiperf 事件;analysis 阶段可选用 **hstack**、**sourcemap**,并通过 `--trace-format-profile` 配置 trace 解码。
57
57
 
58
- `--trace-from` 同时影响 **采集**(hiperf 是否 `--raw-data`)与 **analysis**(是否读 `snapshot_hitrace.txt`、如何与 perf 样本合并);详见下文「analysis 阶段 trace 解码」。
58
+ `--trace-from` 同时影响 **采集**(hiperf 是否 `--raw-data`)与 **analysis**(是否读 `hyperstart_hitrace.txt`、如何与 perf 样本合并);详见下文「analysis 阶段 trace 解码」。
59
59
 
60
60
  **执行阶段**(`defaultGroupOrder`)
61
61
 
@@ -73,7 +73,7 @@ checkpoint 镜像失效等风险的专项采集与分析。按 `--risk-targets`
73
73
  analysis 通过 `src/lib/pipeline.ts` 的 pipeline 执行,trace 解码由 `src/lib/perf_decode.ts` 编排(不再在 checker 内逐样本循环):
74
74
 
75
75
  1. 按 `--trace-format-profile`(或 `auto` 时从设备读取的 format)构建 trace registry。
76
- 2. 若 `--trace-from` 为 `hitrace` 或 `mix`:主线程一次调用 `hmtrace-parser` 的 `buildHitraceIndexSnapshot` 解析 `workspace/snapshot_hitrace.txt`。
76
+ 2. 若 `--trace-from` 为 `hitrace` 或 `mix`:主线程一次调用 `hmtrace-parser` 的 `buildHitraceIndexSnapshot` 解析 `workspace/hyperstart_hitrace.txt`。
77
77
  3. 调用 `hiperf_txt_parser` 的 `decodePerfRawData`,传入 hitrace 索引与 sidecar 策略;`--parse-concurrency` 大于 `1` 时在**加载 perf 文本**与**trace 解码**(profile 无需主线程 transform 时)均可使用 Worker 池。
78
78
 
79
79
  **`--trace-from` 与 hitrace sidecar 策略(analysis,默认由 trace-from 推导)**
@@ -155,7 +155,7 @@ Group: init
155
155
  [mac] hdc shell remount — hdc shell remount
156
156
  ...
157
157
  Group: monitor
158
- [mac] [background] hdc shell "hilog -t kmsg | grep pid" >> ./output/workspace/snapshot_log.txt — 收集日志到本地
158
+ [mac] [background] hdc shell "hilog -t kmsg | grep pid" >> ./output/workspace/hyperstart_log.txt — 收集日志到本地
159
159
  ...
160
160
  ```
161
161
 
@@ -183,15 +183,15 @@ output/
183
183
  ├── dump_stack.json # 同上(JSON)
184
184
  ├── dump_stack.xlsx # 同上(Excel)
185
185
  ├── perf_txt/
186
- │ └── snapshot_perf.data.txt # 设备 hiperf dump 文本
186
+ │ └── hyperstart_perf.data.txt # 设备 hiperf dump 文本
187
187
  └── workspace/ # 中间产物
188
- ├── snapshot_log.txt # hilog 采集
189
- ├── snapshot_hitrace.txt
188
+ ├── hyperstart_log.txt # hilog 采集
189
+ ├── hyperstart_hitrace.txt
190
190
  ├── perf.data
191
- └── _snapshot_perf.data.txt # hstack 解析后 perf(若配置了 hstack)
191
+ └── _hyperstart_perf.data.txt # hstack 解析后 perf(若配置了 hstack)
192
192
  ```
193
193
 
194
- 未配置 `--hstack-tool-path` 时,analysis 阶段会跳过 hstack,日志出现 `[hstack] 未配置,跳过解析`,直接使用 `perf_txt/snapshot_perf.data.txt` 解码。
194
+ 未配置 `--hstack-tool-path` 时,analysis 阶段会跳过 hstack,日志出现 `[hstack] 未配置,跳过解析`,直接使用 `perf_txt/hyperstart_perf.data.txt` 解码。
195
195
 
196
196
  ### 示例
197
197
 
@@ -206,7 +206,7 @@ snapshot-checker report --dry-run --app com.example.app --output-dir ./output
206
206
  ```text
207
207
  hiperf record --raw-data -e checkpoint:vfs_snapshot_dump_monitor,checkpoint:checkpoint_revoked ... -d 70 &
208
208
  ...
209
- hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt
209
+ hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/hyperstart_perf.data.txt
210
210
  ```
211
211
 
212
212
  analysis 时对 hitrace 使用 **perfFirst** sidecar 策略。
@@ -23,6 +23,7 @@ interface ForkallOptions {
23
23
  traceFormatProfile?: string;
24
24
  skipPerfDedupe?: boolean;
25
25
  dropFailedSamples?: boolean;
26
+ keepDecodedPerf?: boolean;
26
27
  hdcTarget?: string;
27
28
  /** 全局 `--parse-concurrency`:hiperf_txt_parser 解析并发度,默认 1 */
28
29
  parseConcurrency?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"forkall.d.ts","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAqC1E,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;IAmDnB,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsKD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAwJlD"}
1
+ {"version":3,"file":"forkall.d.ts","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA0C1E,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;IAwDnB,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsKD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAgKlD"}
@@ -4,9 +4,10 @@ import { existsSync, mkdirSync } from "node:fs";
4
4
  import { AUTO_TRACE_FORMAT_PROFILE, buildCommonAnalysisGroup, buildCommonAnalysisTargetFilterGroup, buildCommonCollectGroup, buildCommonInitEnvGroup, resolveParseConcurrency, resolveTracingEventPermissionPath, TRACE_FORMAT_PROFILE_CLI_DESCRIPTION, } from "../src/lib/presets.js";
5
5
  import { createHdcCli } from "../src/lib/hdc.js";
6
6
  import { buildPythonScriptCommand } from "../src/lib/host_commands.js";
7
- import { ensureTrailingSeparator, normalizeCliOutputDir, quoteLocalPathForShell, resolveProjectRelativePath, } from "../src/lib/paths.js";
7
+ import { DEVICE_TMP_HYPERSTART_HITRACE_PATH, DEVICE_TMP_HYPERSTART_PERF_DATA_TXT_PATH, ensureTrailingSeparator, HYPERSTART_LOG_BASENAME, HYPERSTART_PERF_DATA_TXT_BASENAME, normalizeCliOutputDir, quoteLocalPathForShell, resolveProjectRelativePath, } from "../src/lib/paths.js";
8
8
  import { createModuleLogger } from "../src/logger.js";
9
9
  import { expandCheckpointRevokedFieldDict, passthroughFieldDict, } from "hmtrace-parser";
10
+ import { formatLibforkallAppArg, parseAppSpec } from "../src/lib/app_spec.js";
10
11
  const logger = createModuleLogger(import.meta.url);
11
12
  /**
12
13
  * forkall 场景占位;实际命令由 {@link applyOptions} 按 CLI 注入。
@@ -25,7 +26,7 @@ export const defaultGroupOrder = [
25
26
  ];
26
27
  export const options = [
27
28
  { flags: "--event-path <path>", description: "场景事件配置文件路径" },
28
- { flags: "--app <app>", description: "应用 bundleName(包名)" },
29
+ { flags: "--app <app>", description: "应用 bundleName(包名),或 bundleName:pickerName(picker 启动)" },
29
30
  {
30
31
  flags: "--system-symbol-file-path <path>",
31
32
  description: "系统符号表文件路径",
@@ -73,6 +74,10 @@ export const options = [
73
74
  flags: "--drop-failed-samples",
74
75
  description: "decodePerfRawData 丢弃无 trace 解析器的 raw 样本(dropFailedSamples)",
75
76
  },
77
+ {
78
+ flags: "--keep-decoded-perf",
79
+ description: "将 decodeTrace 解析成功的 perf 写入 workspace/_hyperstart_perf.trace_decoded.txt",
80
+ },
76
81
  ];
77
82
  function buildRebootGroup(input) {
78
83
  const { hdcCli, mode, eventPath, defaultTimeout } = input;
@@ -124,13 +129,13 @@ function buildRebootGroup(input) {
124
129
  ];
125
130
  }
126
131
  function buildMonitorGroup(input) {
127
- const { hdcCli, eventName, app, logKey, bufferSize, duration, snapshotLogFile, startAppCommand, checkStateCommand, } = input;
132
+ const { hdcCli, eventName, app, logKey, bufferSize, duration, hyperStartLogFile, startAppCommand, checkStateCommand, } = input;
128
133
  return [
129
134
  {
130
135
  kind: SHELL_PLATFORM_KINDS,
131
136
  description: "收集日志到本地",
132
137
  background: true,
133
- run: `${hdcCli.shell(`"hilog -t kmsg | grep ${logKey}"`)} >> ${snapshotLogFile}`,
138
+ run: `${hdcCli.shell(`"hilog -t kmsg | grep ${logKey}"`)} >> ${hyperStartLogFile}`,
134
139
  },
135
140
  {
136
141
  kind: SHELL_PLATFORM_KINDS,
@@ -158,7 +163,7 @@ function buildMonitorGroup(input) {
158
163
  description: "收集风险事件数据",
159
164
  run: [
160
165
  `${hdcCli.prefix} shell "`,
161
- `hitrace custom_event --overwrite -b ${bufferSize} -t ${duration} -o /data/local/tmp/snapshot_hitrace.txt & `,
166
+ `hitrace custom_event --overwrite -b ${bufferSize} -t ${duration} -o ${DEVICE_TMP_HYPERSTART_HITRACE_PATH} & `,
162
167
  eventName
163
168
  ? `hiperf record -e ${eventName} --period 1 -s fp --clockid boottime --cpu-limit 100 -o /data/local/tmp/perf.data -p {{monitor_target}} -d ${duration} & `
164
169
  : "",
@@ -166,7 +171,7 @@ function buildMonitorGroup(input) {
166
171
  app ? `${startAppCommand} && ` : "",
167
172
  `${checkStateCommand} & `,
168
173
  "wait && ",
169
- 'hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt"',
174
+ `hiperf dump -i /data/local/tmp/perf.data -o ${DEVICE_TMP_HYPERSTART_PERF_DATA_TXT_PATH}"`,
170
175
  ]
171
176
  .filter(Boolean)
172
177
  .join(""),
@@ -174,14 +179,14 @@ function buildMonitorGroup(input) {
174
179
  ];
175
180
  }
176
181
  function buildAnalysisPreDecodeCommands(input) {
177
- const { systemSymbolFilePath, snapshotPerfFile, parserSystemStackScript } = input;
182
+ const { systemSymbolFilePath, hyperStartPerfFile, parserSystemStackScript } = input;
178
183
  return [
179
184
  ...(systemSymbolFilePath
180
185
  ? [
181
186
  buildPythonScriptCommand({
182
187
  description: "系统栈解栈",
183
188
  scriptPath: parserSystemStackScript,
184
- args: [snapshotPerfFile, snapshotPerfFile, "-S", systemSymbolFilePath],
189
+ args: [hyperStartPerfFile, hyperStartPerfFile, "-S", systemSymbolFilePath],
185
190
  }),
186
191
  ]
187
192
  : []),
@@ -189,9 +194,12 @@ function buildAnalysisPreDecodeCommands(input) {
189
194
  }
190
195
  /** 按 CLI 结果生成 reboot/init/monitor/collect/filter/analysis 各阶段命令表 */
191
196
  export function applyOptions(ctx) {
192
- const { eventPath = "", app = "", systemSymbolFilePath = "", logKey = "pid", duration = "70", defaultTimeout = "90", bufferSize = "512000", mode = "monitor", outputDir = "./output", traceFormatProfile = "default", skipPerfDedupe = false, dropFailedSamples = false, hdcTarget, parseConcurrency: parseConcurrencyRaw, dryRun = false, list = false, } = ctx.options ?? {};
197
+ const { eventPath = "", app = "", systemSymbolFilePath = "", logKey = "pid", duration = "70", defaultTimeout = "90", bufferSize = "512000", mode = "monitor", outputDir = "./output", traceFormatProfile = "default", skipPerfDedupe = false, dropFailedSamples = false, keepDecodedPerf = false, hdcTarget, parseConcurrency: parseConcurrencyRaw, dryRun = false, list = false, } = ctx.options ?? {};
193
198
  const parseConcurrency = resolveParseConcurrency(parseConcurrencyRaw);
194
199
  const hdcCli = createHdcCli(hdcTarget);
200
+ const appSpec = parseAppSpec(app);
201
+ const bundleName = appSpec.bundleName;
202
+ const libforkallAppArg = formatLibforkallAppArg(appSpec);
195
203
  const traceFormatProfileNormalized = traceFormatProfile.trim();
196
204
  if (traceFormatProfileNormalized === AUTO_TRACE_FORMAT_PROFILE &&
197
205
  eventPath.trim() === "") {
@@ -206,13 +214,13 @@ export function applyOptions(ctx) {
206
214
  const perfTextDir = path.join(outputDirNormalized, "perf_txt");
207
215
  const perfTextDirNormalized = path.normalize(perfTextDir);
208
216
  const perfTextDirWithSep = ensureTrailingSeparator(perfTextDirNormalized);
209
- const snapshotLogFile = path.join(workspaceDirNormalized, "snapshot_log.txt");
210
- const snapshotPerfFile = path.join(perfTextDirNormalized, "snapshot_perf.data.txt");
217
+ const hyperStartLogFile = path.join(workspaceDirNormalized, HYPERSTART_LOG_BASENAME);
218
+ const hyperStartPerfFile = path.join(perfTextDirNormalized, HYPERSTART_PERF_DATA_TXT_BASENAME);
211
219
  const dumpStackTxt = path.join(outputDirNormalized, "dump_stack.txt");
212
220
  const dumpStackJson = path.join(outputDirNormalized, "dump_stack.json");
213
221
  const dumpStackXlsx = path.join(outputDirNormalized, "dump_stack.xlsx");
214
222
  const parserSystemStackScript = path.normalize(path.join(".", "tools", "host", "checker", "parse_system_stack.py"));
215
- const startAppCommand = `hidumper -s 1901 -a '-p libforkall_plugin.z.so --create 100 ${app}'`;
223
+ const startAppCommand = `hidumper -s 1901 -a '-p libforkall_plugin.z.so --create 100 ${libforkallAppArg}'`;
216
224
  if (!dryRun && !list) {
217
225
  if (!existsSync(outputDirNormalized)) {
218
226
  mkdirSync(outputDirNormalized, { recursive: true });
@@ -231,41 +239,41 @@ export function applyOptions(ctx) {
231
239
  defaultTimeout,
232
240
  });
233
241
  const initEnvGroup = buildCommonInitEnvGroup({
234
- app,
235
- snapshotLogFile,
242
+ appSpec,
243
+ hyperStartLogFile,
236
244
  checkStateCommand,
237
245
  hdc: hdcCli,
238
246
  });
239
247
  const monitorGroup = buildMonitorGroup({
240
248
  hdcCli,
241
249
  eventName,
242
- app,
250
+ app: bundleName,
243
251
  logKey,
244
252
  bufferSize,
245
253
  duration,
246
- snapshotLogFile,
254
+ hyperStartLogFile,
247
255
  startAppCommand,
248
256
  checkStateCommand,
249
257
  });
250
258
  const collectGroup = buildCommonCollectGroup({
251
259
  checkStateCommand,
252
- snapshotPerfReceiveDirWithSep: perfTextDirWithSep,
260
+ hyperStartPerfReceiveDirWithSep: perfTextDirWithSep,
253
261
  outputDirWithSep: workspaceDirWithSep,
254
262
  hdc: hdcCli,
255
263
  });
256
264
  const filterGroup = buildCommonAnalysisTargetFilterGroup({
257
- app,
258
- snapshotPerfFile,
265
+ app: bundleName,
266
+ hyperStartPerfFile,
259
267
  writeBacktraceStacks: false,
260
268
  hdc: hdcCli,
261
269
  });
262
270
  const analysisGroup = buildCommonAnalysisGroup({
263
271
  preDecodeCommands: buildAnalysisPreDecodeCommands({
264
272
  systemSymbolFilePath,
265
- snapshotPerfFile,
273
+ hyperStartPerfFile,
266
274
  parserSystemStackScript,
267
275
  }),
268
- decodeInput: { inputFilePath: snapshotPerfFile },
276
+ decodeInput: { inputFilePath: hyperStartPerfFile },
269
277
  dumpStackTxt,
270
278
  dumpStackJson,
271
279
  dumpStackXlsx,
@@ -276,6 +284,7 @@ export function applyOptions(ctx) {
276
284
  traceFrom: "mix",
277
285
  skipDedupePerfData: skipPerfDedupe,
278
286
  dropFailedSamples,
287
+ keepDecodedPerf,
279
288
  parseConcurrency,
280
289
  traceFormatAuto: traceFormatProfileNormalized === AUTO_TRACE_FORMAT_PROFILE
281
290
  ? (() => {
@@ -1 +1 @@
1
- {"version":3,"file":"forkall.js","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forkall.js","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,oCAAoC,EACpC,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,kCAAkC,EAClC,wCAAwC,EACxC,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,gCAAgC,EAChC,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE9E,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD;;;GAGG;AAEH,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAW,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,QAAQ;IACR,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE;IAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,sDAAsD,EAAE;IAC7F;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE,WAAW;KACzB;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,KAAK;KACpB;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,IAAI;KACnB;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,iBAAiB;QAC9B,YAAY,EAAE,IAAI;KACnB;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,QAAQ;KACvB;IACD;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,SAAS;KACxB;IACD;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,UAAU;KACzB;IACD;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,oCAAoC;QACjD,YAAY,EAAE,SAAS;KACxB;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,4DAA4D;KAC/D;IACD;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,0EAA0E;KAC7E;CACF,CAAC;AAwBF,SAAS,gBAAgB,CAAC,KAKzB;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC1D,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO;QACL;YACE,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;SAC7B;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,MAAM,CAAC,KAAK,CACf,4IAA4I,CAC7I;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;SAClF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,eAAe;YAC5B,GAAG,EAAE,MAAM,CAAC,QAAQ,CAClB,sBAAsB,CACpB,0BAA0B,CACxB,QAAQ,EACR,SAAS,EACT,6BAA6B,CAC9B,CACF,EACD,uCAAuC,CACxC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAClB,sBAAsB,CACpB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAChE,EACD,aAAa,CACd;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,cAAc;YAC3B,GAAG,EAAE,MAAM,CAAC,KAAK,CACf,6BAA6B,SAAS,4CAA4C,CACnF;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,YAAY;YACzB,GAAG,EAAE,MAAM,CAAC,KAAK,CACf,wEAAwE,CACzE;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,MAAM;YACnB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B;QACD;YACE,IAAI,EAAE,WAAW,CAAC,KAAK;YACvB,WAAW,EAAE,iBAAiB;YAC9B,GAAG,EAAE,WAAW,cAAc,EAAE;SACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAU1B;IACC,MAAM,EACJ,MAAM,EACN,SAAS,EACT,GAAG,EACH,MAAM,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,GAAG,KAAK,CAAC;IACV,OAAO;QACL;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,GAAG,CAAC,OAAO,iBAAiB,EAAE;SACnF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;YAClC,YAAY,EAAE;gBACZ,IAAI,EAAE,cAAc;aACrB;SACF;QACD;YACE,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,CAAC,GAAmB,EAAE,EAAE;gBAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAS,cAAc,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBAC3C,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;YACnD,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,UAAU;YACvB,GAAG,EAAE;gBACH,GAAG,MAAM,CAAC,MAAM,UAAU;gBAC1B,uCAAuC,UAAU,OAAO,QAAQ,OAAO,kCAAkC,KAAK;gBAC9G,SAAS;oBACP,CAAC,CAAC,oBAAoB,SAAS,8GAA8G,QAAQ,KAAK;oBAC1J,CAAC,CAAC,EAAE;gBACN,aAAa;gBACb,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnC,GAAG,iBAAiB,KAAK;gBACzB,UAAU;gBACV,+CAA+C,wCAAwC,GAAG;aAC3F;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,EAAE,CAAC;SACZ;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,KAIvC;IACC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,GAAG,KAAK,CAAC;IACpF,OAAO;QACL,GAAG,CAAC,oBAAoB;YACtB,CAAC,CAAC;gBACE,wBAAwB,CAAC;oBACvB,WAAW,EAAE,OAAO;oBACpB,UAAU,EAAE,uBAAuB;oBACnC,IAAI,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,CAAC;iBAC3E,CAAC;aACH;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,GAI5B;IACC,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,GAAG,GAAG,EAAE,EACR,oBAAoB,GAAG,EAAE,EACzB,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,IAAI,EACf,cAAc,GAAG,IAAI,EACrB,UAAU,GAAG,QAAQ,EACrB,IAAI,GAAG,SAAS,EAChB,SAAS,GAAG,UAAU,EACtB,kBAAkB,GAAG,SAAS,EAC9B,cAAc,GAAG,KAAK,EACtB,iBAAiB,GAAG,KAAK,EACzB,eAAe,GAAG,KAAK,EACvB,SAAS,EACT,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,KAAK,GACb,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAEtB,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC/D,IACE,4BAA4B,KAAK,yBAAyB;QAC1D,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,iBAAiB,GAAG,wDAAwD,CAAC;IACnF,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IACtE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;IACrF,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,qBAAqB,EACrB,iCAAiC,CAClC,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,CAAC,CACpE,CAAC;IACF,MAAM,eAAe,GAAG,+DAA+D,gBAAgB,GAAG,CAAC;IAE3G,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACxC,SAAS,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACnC,MAAM;QACN,IAAI;QACJ,SAAS;QACT,cAAc;KACf,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,uBAAuB,CAAC;QAC3C,OAAO;QACP,iBAAiB;QACjB,iBAAiB;QACjB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACrC,MAAM;QACN,SAAS;QACT,GAAG,EAAE,UAAU;QACf,MAAM;QACN,UAAU;QACV,QAAQ;QACR,iBAAiB;QACjB,eAAe;QACf,iBAAiB;KAClB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,uBAAuB,CAAC;QAC3C,iBAAiB;QACjB,+BAA+B,EAAE,kBAAkB;QACnD,gBAAgB,EAAE,mBAAmB;QACrC,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oCAAoC,CAAC;QACvD,GAAG,EAAE,UAAU;QACf,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;QAC7C,iBAAiB,EAAE,8BAA8B,CAAC;YAChD,oBAAoB;YACpB,kBAAkB;YAClB,uBAAuB;SACxB,CAAC;QACF,WAAW,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE;QAClD,YAAY;QACZ,aAAa;QACb,aAAa;QACb,kBAAkB;QAClB,eAAe,EAAE,OAAO;QACxB,mBAAmB,EAAE,sBAAsB;QAC3C,YAAY,EAAE,sBAAsB;QACpC,SAAS,EAAE,KAAK;QAChB,kBAAkB,EAAE,cAAc;QAClC,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,eAAe,EACb,4BAA4B,KAAK,yBAAyB;YACxD,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,UAAU,GAAG,GAAG,iCAAiC,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC5E,OAAO;oBACL,MAAM;oBACN,aAAa,EAAE;wBACb;4BACE,UAAU;4BACV,kBAAkB,EAAE,UAAU,CAAC,QAAQ,CACrC,uCAAuC,CACxC;gCACC,CAAC,CAAC,gCAAgC;gCAClC,CAAC,CAAC,oBAAoB;yBACzB;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAW;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,aAAa;KACxB,CAAC;IAEF,MAAM,KAAK,GACT,IAAI,KAAK,gBAAgB;QACvB,CAAC,CAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAc;QAC9E,CAAC,CAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAc,CAAC;IAEzE,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,iBAAiB,EAAE,KAAK;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** CLI `--app` 解析结果:纯 bundleName,或 `bundleName:pickerName`。 */
2
+ export interface AppSpec {
3
+ bundleName: string;
4
+ pickerName?: string;
5
+ raw: string;
6
+ }
7
+ /** 解析 `--app`;支持 `bundleName` 或 `bundleName:pickerName`。 */
8
+ export declare function parseAppSpec(raw: string): AppSpec;
9
+ /** libforkall `--create` / `--destroy` 的应用参数(含 picker 时用空格拼接)。 */
10
+ export declare function formatLibforkallAppArg(spec: AppSpec): string;
11
+ /** `aa start` 不支持 picker 启动;report-user 等路径应在校验阶段调用。 */
12
+ export declare function assertAppSpecSupportsAaStart(spec: AppSpec): void;
13
+ //# sourceMappingURL=app_spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app_spec.d.ts","sourceRoot":"","sources":["../../../src/lib/app_spec.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAoBjD;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAK5D;AAED,wDAAwD;AACxD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAMhE"}
@@ -0,0 +1,31 @@
1
+ /** 解析 `--app`;支持 `bundleName` 或 `bundleName:pickerName`。 */
2
+ export function parseAppSpec(raw) {
3
+ const trimmed = raw.trim();
4
+ if (!trimmed) {
5
+ return { bundleName: "", raw: "" };
6
+ }
7
+ const colonIndex = trimmed.indexOf(":");
8
+ if (colonIndex === -1) {
9
+ return { bundleName: trimmed, raw: trimmed };
10
+ }
11
+ const bundleName = trimmed.slice(0, colonIndex).trim();
12
+ const pickerName = trimmed.slice(colonIndex + 1).trim();
13
+ if (!bundleName || !pickerName) {
14
+ throw new Error(`[--app] 无效的 bundleName:pickerName 格式: ${JSON.stringify(raw)}`);
15
+ }
16
+ return { bundleName, pickerName, raw: trimmed };
17
+ }
18
+ /** libforkall `--create` / `--destroy` 的应用参数(含 picker 时用空格拼接)。 */
19
+ export function formatLibforkallAppArg(spec) {
20
+ if (spec.pickerName) {
21
+ return `${spec.bundleName} ${spec.pickerName}`;
22
+ }
23
+ return spec.bundleName;
24
+ }
25
+ /** `aa start` 不支持 picker 启动;report-user 等路径应在校验阶段调用。 */
26
+ export function assertAppSpecSupportsAaStart(spec) {
27
+ if (spec.pickerName) {
28
+ throw new Error(`[--app] bundleName:pickerName 格式不支持 aa start,请仅使用 bundleName 或改用 report 场景`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=app_spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app_spec.js","sourceRoot":"","sources":["../../../src/lib/app_spec.ts"],"names":[],"mappings":"AAOA,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,4BAA4B,CAAC,IAAa;IACxD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,5 +1,16 @@
1
1
  /** CLI 与编程式调用的默认输出根目录(POSIX 写法,经 normalize 后随平台展开)。 */
2
2
  export declare const DEFAULT_OUTPUT_DIR = "./output";
3
+ /** 本地 workspace / perf_txt 及设备拉取产物的基础文件名(`hyperstart_` 前缀)。 */
4
+ export declare const HYPERSTART_LOG_BASENAME = "hyperstart_log.txt";
5
+ export declare const HYPERSTART_HITRACE_BASENAME = "hyperstart_hitrace.txt";
6
+ export declare const HYPERSTART_PERF_DATA_TXT_BASENAME = "hyperstart_perf.data.txt";
7
+ /** hstack 解析后写回 workspace 的中间 perf 文本 */
8
+ export declare const HYPERSTART_PARSED_PERF_DATA_TXT_BASENAME = "_hyperstart_perf.data.txt";
9
+ /** trace 解码后写回 workspace 的中间 perf 文本(与 perf_txt 下原始采集文件区分) */
10
+ export declare const HYPERSTART_TRACE_DECODED_PERF_DATA_TXT_BASENAME = "_hyperstart_perf.trace_decoded.txt";
11
+ /** 设备 `/data/local/tmp` 下采集阶段写入的 hitrace / hiperf 文本路径 */
12
+ export declare const DEVICE_TMP_HYPERSTART_HITRACE_PATH = "/data/local/tmp/hyperstart_hitrace.txt";
13
+ export declare const DEVICE_TMP_HYPERSTART_PERF_DATA_TXT_PATH = "/data/local/tmp/hyperstart_perf.data.txt";
3
14
  /** 规范化 CLI 传入的输出目录;空串回退为 {@link DEFAULT_OUTPUT_DIR}。 */
4
15
  export declare function normalizeCliOutputDir(raw: string | undefined): string;
5
16
  /** 相对当前工作目录拼接路径并规范化(替代硬编码 `.\config\...`)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/lib/paths.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAE7C,wDAAwD;AACxD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGrE;AAED,8CAA8C;AAC9C,wBAAgB,0BAA0B,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAExE;AAED,mDAAmD;AACnD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wCAAwC;AACxC,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/D"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/lib/paths.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAE7C,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,yCAAyC;AACzC,eAAO,MAAM,wCAAwC,8BAA8B,CAAC;AACpF,8DAA8D;AAC9D,eAAO,MAAM,+CAA+C,uCACtB,CAAC;AAEvC,0DAA0D;AAC1D,eAAO,MAAM,kCAAkC,2CAAmD,CAAC;AACnG,eAAO,MAAM,wCAAwC,6CAAyD,CAAC;AAE/G,wDAAwD;AACxD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGrE;AAED,8CAA8C;AAC9C,wBAAgB,0BAA0B,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAExE;AAED,mDAAmD;AACnD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wCAAwC;AACxC,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/D"}
@@ -1,6 +1,17 @@
1
1
  import path from "node:path";
2
2
  /** CLI 与编程式调用的默认输出根目录(POSIX 写法,经 normalize 后随平台展开)。 */
3
3
  export const DEFAULT_OUTPUT_DIR = "./output";
4
+ /** 本地 workspace / perf_txt 及设备拉取产物的基础文件名(`hyperstart_` 前缀)。 */
5
+ export const HYPERSTART_LOG_BASENAME = "hyperstart_log.txt";
6
+ export const HYPERSTART_HITRACE_BASENAME = "hyperstart_hitrace.txt";
7
+ export const HYPERSTART_PERF_DATA_TXT_BASENAME = "hyperstart_perf.data.txt";
8
+ /** hstack 解析后写回 workspace 的中间 perf 文本 */
9
+ export const HYPERSTART_PARSED_PERF_DATA_TXT_BASENAME = "_hyperstart_perf.data.txt";
10
+ /** trace 解码后写回 workspace 的中间 perf 文本(与 perf_txt 下原始采集文件区分) */
11
+ export const HYPERSTART_TRACE_DECODED_PERF_DATA_TXT_BASENAME = "_hyperstart_perf.trace_decoded.txt";
12
+ /** 设备 `/data/local/tmp` 下采集阶段写入的 hitrace / hiperf 文本路径 */
13
+ export const DEVICE_TMP_HYPERSTART_HITRACE_PATH = `/data/local/tmp/${HYPERSTART_HITRACE_BASENAME}`;
14
+ export const DEVICE_TMP_HYPERSTART_PERF_DATA_TXT_PATH = `/data/local/tmp/${HYPERSTART_PERF_DATA_TXT_BASENAME}`;
4
15
  /** 规范化 CLI 传入的输出目录;空串回退为 {@link DEFAULT_OUTPUT_DIR}。 */
5
16
  export function normalizeCliOutputDir(raw) {
6
17
  const trimmed = raw?.trim() ?? "";
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,wDAAwD;AACxD,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC3E,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,0BAA0B,CAAC,GAAG,QAAkB;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AACpE,MAAM,CAAC,MAAM,iCAAiC,GAAG,0BAA0B,CAAC;AAC5E,yCAAyC;AACzC,MAAM,CAAC,MAAM,wCAAwC,GAAG,2BAA2B,CAAC;AACpF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,+CAA+C,GAC1D,oCAAoC,CAAC;AAEvC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,kCAAkC,GAAG,mBAAmB,2BAA2B,EAAE,CAAC;AACnG,MAAM,CAAC,MAAM,wCAAwC,GAAG,mBAAmB,iCAAiC,EAAE,CAAC;AAE/G,wDAAwD;AACxD,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC3E,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,0BAA0B,CAAC,GAAG,QAAkB;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAChD,CAAC"}
@@ -1 +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"}
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;AAOxB,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"}
@@ -2,6 +2,7 @@
2
2
  import { decodePerfRawData, hitracePolicyHitraceFirst, hitracePolicyPerfFirst, hitracePolicyPerfOnly, traceFormatTextsNeedMainThreadDecode, } from "hiperf_txt_parser";
3
3
  import { buildHitraceIndexSnapshot, buildTraceRegistry, buildTraceRegistryFromProfile, getTraceEventFormats, } from "hmtrace-parser";
4
4
  import path from "node:path";
5
+ import { HYPERSTART_HITRACE_BASENAME } from "./paths.js";
5
6
  import { createModuleLogger } from "../logger.js";
6
7
  const logger = createModuleLogger(import.meta.url);
7
8
  /** 解析 report `--trace-from-threshold` / `--trace-from-threshold-opt` 为 hiperf hitrace `timeThreshold` */
@@ -62,7 +63,7 @@ export async function decodePerfDataWithProfile(input) {
62
63
  logger.info(`trace-from=hiperf hitrace 策略=perfOnly,跳过索引构建 profile=${input.selectedProfile}`);
63
64
  }
64
65
  else {
65
- const hitracePath = path.join(input.workspaceDir, "snapshot_hitrace.txt");
66
+ const hitracePath = path.join(input.workspaceDir, HYPERSTART_HITRACE_BASENAME);
66
67
  logger.info(`hitrace 预处理开始: ${hitracePath}`);
67
68
  const index = await buildHitraceIndexSnapshot({ filePath: hitracePath }, formats, { tracePrintMode: "fieldDict" });
68
69
  const threadCount = Object.keys(index).length;
@@ -1 +1 @@
1
- {"version":3,"file":"perf_decode.js","sourceRoot":"","sources":["../../../src/lib/perf_decode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"perf_decode.js","sourceRoot":"","sources":["../../../src/lib/perf_decode.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,8 @@ export type HiperfDecodePipelineContext = {
48
48
  runBacktrackFS: boolean;
49
49
  skipNonBacktrack: boolean;
50
50
  dropFailedSamples: boolean;
51
+ /** 为 true 时将 decodeTrace 结果写入 workspace 中间 perf 文本 */
52
+ keepDecodedPerf: boolean;
51
53
  /** `--risk-targets` 仅 direct 时 true;无样本跳过导出时不提示重新采集 */
52
54
  directOnlyRiskTarget: boolean;
53
55
  traceFormatAuto?: TraceFormatAutoConfig;
@@ -78,6 +80,7 @@ export declare function createHiperfDecodePipelineContext(input: {
78
80
  runBacktrackFS?: boolean;
79
81
  skipNonBacktrack?: boolean;
80
82
  dropFailedSamples?: boolean;
83
+ keepDecodedPerf?: boolean;
81
84
  directOnlyRiskTarget?: boolean;
82
85
  traceFormatAuto?: TraceFormatAutoConfig;
83
86
  traceFrom?: TraceFromSource;
@@ -90,7 +93,7 @@ export declare const HIPERF_DECODE_PIPELINE_STAGES: PipelineStage<HiperfDecodePi
90
93
  export declare function runHiperfDecodePipeline(input: Parameters<typeof createHiperfDecodePipelineContext>[0]): Promise<boolean>;
91
94
  /** 过滤 pipeline 上下文 */
92
95
  export type HiperfFilterPipelineContext = {
93
- snapshotPerfFile: string;
96
+ hyperStartPerfFile: string;
94
97
  targetTgid: number;
95
98
  writeBacktraceStacks: boolean;
96
99
  /** `--risk-targets` 仅含 direct 时,tgid 无样本视为无风险中性短路;否则 error */
@@ -99,7 +102,7 @@ export type HiperfFilterPipelineContext = {
99
102
  };
100
103
  /** 根据调用参数构造过滤 pipeline 初始上下文 */
101
104
  export declare function createHiperfFilterPipelineContext(input: {
102
- snapshotPerfFile: string;
105
+ hyperStartPerfFile: string;
103
106
  targetTgid: number;
104
107
  writeBacktraceStacks: boolean;
105
108
  directOnlyRiskTarget?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/pipeline.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@
2
2
  import { dedupePerfData, filterByTgid, loadPerfData, savePerfDataToExcel, savePerfDataToJson, savePerfDataToText, toBackTraceStacks, } from "hiperf_txt_parser";
3
3
  import { backtrackFS, backtrackStrategyRls, resolveBacktrackStrategy, } from "hmtrace-parser";
4
4
  import { decodePerfDataWithProfile } from "./perf_decode.js";
5
+ import { HYPERSTART_TRACE_DECODED_PERF_DATA_TXT_BASENAME } from "./paths.js";
5
6
  import { createModuleLogger } from "../logger.js";
7
+ import path from "node:path";
6
8
  const logger = createModuleLogger(import.meta.url);
7
9
  import { AUTO_TRACE_FORMAT_PROFILE, fetchTraceEventFormatsFromDevice, resolveTraceFormatProfile, } from "./format.js";
8
10
  /**
@@ -40,6 +42,7 @@ export function createHiperfDecodePipelineContext(input) {
40
42
  runBacktrackFS: input.runBacktrackFS ?? false,
41
43
  skipNonBacktrack: input.skipNonBacktrack ?? false,
42
44
  dropFailedSamples: input.dropFailedSamples ?? false,
45
+ keepDecodedPerf: input.keepDecodedPerf ?? false,
43
46
  directOnlyRiskTarget: input.directOnlyRiskTarget ?? false,
44
47
  traceFrom: input.traceFrom ?? "mix",
45
48
  useParallel: shouldUseParallelParse(parseConcurrency),
@@ -105,6 +108,28 @@ const decodeTraceStage = {
105
108
  return { status: "continue" };
106
109
  },
107
110
  };
111
+ /** 可选:将 decodeTrace 解析成功的 perf 写入 workspace 中间文件(`keepDecodedPerf` 为 false 时跳过) */
112
+ const saveDecodedPerfStage = {
113
+ name: "saveDecodedPerf",
114
+ async run(ctx) {
115
+ if (!ctx.keepDecodedPerf) {
116
+ return { status: "continue" };
117
+ }
118
+ const outputPath = path.join(ctx.workspaceDir, HYPERSTART_TRACE_DECODED_PERF_DATA_TXT_BASENAME);
119
+ const decodedPerfData = ctx.perfData;
120
+ if (ctx.useParallel) {
121
+ await savePerfDataToText(decodedPerfData, {
122
+ outputPath,
123
+ workerCount: ctx.parseConcurrency,
124
+ });
125
+ }
126
+ else {
127
+ await savePerfDataToText(decodedPerfData, { outputPath });
128
+ }
129
+ logger.info(`[${ctx.stageName}] 已写入 trace 解码中间文件: ${outputPath} samples=${decodedPerfData.recordSamples.length}`);
130
+ return { status: "continue" };
131
+ },
132
+ };
108
133
  /**
109
134
  * 可选:将 revoked 样本与 FS dump 样本配对回溯(`runBacktrackFS` 为 false 时跳过)。
110
135
  * 输出 0 条时 warning 并保留解码样本(如 all 模式下仍可能有 direct 事件)。
@@ -202,6 +227,7 @@ export const HIPERF_DECODE_PIPELINE_STAGES = [
202
227
  prepareAutoFormatsStage,
203
228
  loadPerfDataStage,
204
229
  decodeTraceStage,
230
+ saveDecodedPerfStage,
205
231
  backtrackFSStage,
206
232
  dedupeStage,
207
233
  writeDecodeOutputsStage,
@@ -236,11 +262,11 @@ export function createHiperfFilterPipelineContext(input) {
236
262
  directOnlyRiskTarget: input.directOnlyRiskTarget ?? false,
237
263
  };
238
264
  }
239
- /** 从 `snapshotPerfFile` 加载 perf 文本 */
265
+ /** 从 `hyperStartPerfFile` 加载 perf 文本 */
240
266
  const loadFilterInputStage = {
241
267
  name: "loadPerfData",
242
268
  async run(ctx) {
243
- ctx.perfData = await loadPerfData(ctx.snapshotPerfFile);
269
+ ctx.perfData = await loadPerfData(ctx.hyperStartPerfFile);
244
270
  return { status: "continue" };
245
271
  },
246
272
  };
@@ -275,14 +301,14 @@ const optionalBacktraceStacksStage = {
275
301
  return { status: "continue" };
276
302
  },
277
303
  };
278
- /** 将过滤后的 perf 写回 `snapshotPerfFile` */
304
+ /** 将过滤后的 perf 写回 `hyperStartPerfFile` */
279
305
  const writeFilterOutputStage = {
280
306
  name: "writeFilteredPerf",
281
307
  async run(ctx) {
282
308
  await savePerfDataToText(ctx.perfData, {
283
- outputPath: ctx.snapshotPerfFile,
309
+ outputPath: ctx.hyperStartPerfFile,
284
310
  });
285
- logger.info(`[过滤] 已写回: ${ctx.snapshotPerfFile}`);
311
+ logger.info(`[过滤] 已写回: ${ctx.hyperStartPerfFile}`);
286
312
  return { status: "continue" };
287
313
  },
288
314
  };
@@ -305,7 +331,7 @@ export async function runHiperfFilterPipeline(input) {
305
331
  });
306
332
  }
307
333
  catch (error) {
308
- logger.error(`[过滤] 失败: ${input.snapshotPerfFile}`, error);
334
+ logger.error(`[过滤] 失败: ${input.hyperStartPerfFile}`, error);
309
335
  return { ok: false, error: true };
310
336
  }
311
337
  }