memorydetective 1.12.0 → 1.14.0
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/CHANGELOG.md +65 -1
- package/README.md +15 -5
- package/USAGE.md +29 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/parsers/schemaDiscovery.d.ts +88 -0
- package/dist/parsers/schemaDiscovery.js +144 -0
- package/dist/parsers/schemaDiscovery.js.map +1 -0
- package/dist/parsers/xctraceXml.d.ts +5 -0
- package/dist/parsers/xctraceXml.js +3 -0
- package/dist/parsers/xctraceXml.js.map +1 -1
- package/dist/runtime/prompts.js +49 -0
- package/dist/runtime/prompts.js.map +1 -1
- package/dist/tools/analyzeAllocations.d.ts +5 -1
- package/dist/tools/analyzeAllocations.js +17 -1
- package/dist/tools/analyzeAllocations.js.map +1 -1
- package/dist/tools/analyzeAnimationHitches.d.ts +5 -1
- package/dist/tools/analyzeAnimationHitches.js +17 -1
- package/dist/tools/analyzeAnimationHitches.js.map +1 -1
- package/dist/tools/analyzeAppLaunch.d.ts +3 -0
- package/dist/tools/analyzeAppLaunch.js +17 -1
- package/dist/tools/analyzeAppLaunch.js.map +1 -1
- package/dist/tools/analyzeHangs.d.ts +63 -3
- package/dist/tools/analyzeHangs.js +143 -19
- package/dist/tools/analyzeHangs.js.map +1 -1
- package/dist/tools/analyzeNetworkActivity.d.ts +99 -0
- package/dist/tools/analyzeNetworkActivity.js +312 -0
- package/dist/tools/analyzeNetworkActivity.js.map +1 -0
- package/dist/tools/analyzeTimeProfile.d.ts +10 -1
- package/dist/tools/analyzeTimeProfile.js +63 -8
- package/dist/tools/analyzeTimeProfile.js.map +1 -1
- package/dist/tools/captureScenarioState.d.ts +2 -2
- package/dist/tools/countAlive.d.ts +35 -1
- package/dist/tools/countAlive.js +124 -29
- package/dist/tools/countAlive.js.map +1 -1
- package/dist/tools/inspectTrace.js +112 -18
- package/dist/tools/inspectTrace.js.map +1 -1
- package/dist/tools/recordTimeProfile.d.ts +83 -0
- package/dist/tools/recordTimeProfile.js +135 -0
- package/dist/tools/recordTimeProfile.js.map +1 -1
- package/dist/tools/replayScenario.d.ts +4 -4
- package/dist/tools/summarizeTrace.d.ts +147 -0
- package/dist/tools/summarizeTrace.js +424 -0
- package/dist/tools/summarizeTrace.js.map +1 -0
- package/dist/tools/verifyFix.d.ts +27 -0
- package/dist/tools/verifyFix.js +78 -4
- package/dist/tools/verifyFix.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xctraceXml.js","sourceRoot":"","sources":["../../src/parsers/xctraceXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"xctraceXml.js","sourceRoot":"","sources":["../../src/parsers/xctraceXml.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/prompts.js
CHANGED
|
@@ -65,6 +65,19 @@ export const PROMPTS = [
|
|
|
65
65
|
],
|
|
66
66
|
render: ({ tracePath }) => renderPlaybookPrompt(PLAYBOOKS["app-launch-slow"], { tracePath }),
|
|
67
67
|
},
|
|
68
|
+
{
|
|
69
|
+
name: "summarize-trace",
|
|
70
|
+
title: "Single-call cross-schema summary card for a .trace",
|
|
71
|
+
description: "Call `summarizeTrace` on the user-supplied .trace and present the markdown card. Surfaces hangs, hitches, time-profile hotspots, allocations, app launch, and cross-correlations in one pass. Use this as the FIRST step on any new .trace.",
|
|
72
|
+
arguments: [
|
|
73
|
+
{
|
|
74
|
+
name: "tracePath",
|
|
75
|
+
description: "Absolute path to the .trace bundle",
|
|
76
|
+
required: true,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
render: ({ tracePath }) => renderSummarizeTracePrompt(tracePath),
|
|
80
|
+
},
|
|
68
81
|
{
|
|
69
82
|
name: "verify-cycle-fix",
|
|
70
83
|
title: "Verify a fix closed a known cycle",
|
|
@@ -87,6 +100,42 @@ export const PROMPTS = [
|
|
|
87
100
|
export function findPrompt(name) {
|
|
88
101
|
return PROMPTS.find((p) => p.name === name);
|
|
89
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* v1.13: summarize-trace prompt. Unlike the other prompts (which render
|
|
105
|
+
* multi-step playbooks), this one wraps a single tool call. The brief
|
|
106
|
+
* tells the agent to (1) call `summarizeTrace`, (2) present the
|
|
107
|
+
* pre-rendered markdown card to the user verbatim, (3) offer to drill
|
|
108
|
+
* in via the response's `suggestedNextCalls[]`.
|
|
109
|
+
*/
|
|
110
|
+
function renderSummarizeTracePrompt(tracePath) {
|
|
111
|
+
return [
|
|
112
|
+
`Run the **trace-summary** flow on \`${tracePath}\`.`,
|
|
113
|
+
"",
|
|
114
|
+
"## Step 1: `summarizeTrace`",
|
|
115
|
+
"",
|
|
116
|
+
"Call this tool first:",
|
|
117
|
+
"",
|
|
118
|
+
"```json",
|
|
119
|
+
`{ "tracePath": "${tracePath}" }`,
|
|
120
|
+
"```",
|
|
121
|
+
"",
|
|
122
|
+
"The response carries a structured per-area summary PLUS a pre-rendered markdown card (`result.markdown`).",
|
|
123
|
+
"",
|
|
124
|
+
"## Step 2: present the markdown card",
|
|
125
|
+
"",
|
|
126
|
+
"Show the user the `markdown` field verbatim. Do NOT re-summarize what it already says. It's been tuned for direct presentation.",
|
|
127
|
+
"",
|
|
128
|
+
"## Step 3: offer to drill in",
|
|
129
|
+
"",
|
|
130
|
+
"Each populated area carries `result.areas.<area>.result.suggestedNextCalls[]` (when present) plus `result.inspection.suggestedNextCalls[]` for the analyzer level. Surface these as concrete follow-up offers (e.g. \"Want me to run `analyzeTimeProfile` to see the top 30 symbols instead of just 15?\").",
|
|
131
|
+
"",
|
|
132
|
+
"## Do NOT",
|
|
133
|
+
"",
|
|
134
|
+
"- Propose architectural changes before the user has seen the summary.",
|
|
135
|
+
"- Re-call `summarizeTrace` to refine; pass `verbose: true` to expand or `focus: \"hangs\"` to bias instead.",
|
|
136
|
+
"- Re-call individual analyzers if the summary already answered the question.",
|
|
137
|
+
].join("\n");
|
|
138
|
+
}
|
|
90
139
|
/**
|
|
91
140
|
* Substitutes user-provided values into a playbook's argsTemplate slots and
|
|
92
141
|
* renders a markdown brief the agent can act on directly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { DataStatus } from "../types.js";
|
|
2
|
+
import type { DataStatus, SupportStatus } from "../types.js";
|
|
3
3
|
export declare const analyzeAllocationsSchema: z.ZodObject<{
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
@@ -48,8 +48,12 @@ export interface AnalyzeAllocationsResult {
|
|
|
48
48
|
/**
|
|
49
49
|
* Disambiguates empty arrays into "no data in the trace" vs "trace could
|
|
50
50
|
* not be exported" vs "data was exported partially". See {@link DataStatus}.
|
|
51
|
+
*
|
|
52
|
+
* @deprecated v1.14 item I. Use `supportStatus[]` instead.
|
|
51
53
|
*/
|
|
52
54
|
status: DataStatus;
|
|
55
|
+
/** v1.14+. Unified per-area status. See {@link SupportStatus}. */
|
|
56
|
+
supportStatus: SupportStatus[];
|
|
53
57
|
}
|
|
54
58
|
/** Pure: turn parsed XML into the analyzed result. */
|
|
55
59
|
export declare function analyzeAllocationsFromXml(xml: string, tracePath: string, topN?: number, minBytes?: number): AnalyzeAllocationsResult;
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { resolve as resolvePath } from "node:path";
|
|
4
4
|
import { runCommand } from "../runtime/exec.js";
|
|
5
|
+
import { fetchDiscoveredSchemas } from "../parsers/schemaDiscovery.js";
|
|
5
6
|
import { parseXctraceXml, asNumber, asFormatted, } from "../parsers/xctraceXml.js";
|
|
6
7
|
import { outputFormatField } from "../runtime/responseFormatter.js";
|
|
7
8
|
export const analyzeAllocationsSchema = z.object({
|
|
@@ -41,6 +42,13 @@ export function analyzeAllocationsFromXml(xml, tracePath, topN = 15, minBytes =
|
|
|
41
42
|
topByCount: [],
|
|
42
43
|
diagnosis: "No allocations table found in the trace.",
|
|
43
44
|
status: "not_present",
|
|
45
|
+
supportStatus: [
|
|
46
|
+
{
|
|
47
|
+
kind: "allocations",
|
|
48
|
+
status: "not_present",
|
|
49
|
+
reason: "Schema absent from the trace TOC.",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
44
52
|
};
|
|
45
53
|
}
|
|
46
54
|
// The xctrace `allocations` schema has columns roughly like:
|
|
@@ -130,6 +138,13 @@ export function analyzeAllocationsFromXml(xml, tracePath, topN = 15, minBytes =
|
|
|
130
138
|
topByCount,
|
|
131
139
|
diagnosis,
|
|
132
140
|
status: "available",
|
|
141
|
+
supportStatus: [
|
|
142
|
+
{
|
|
143
|
+
kind: "allocations",
|
|
144
|
+
status: "available",
|
|
145
|
+
sourceSchemas: ["allocations"],
|
|
146
|
+
},
|
|
147
|
+
],
|
|
133
148
|
};
|
|
134
149
|
}
|
|
135
150
|
function buildDiagnosis(rows, cumulativeBytes, topByBytes) {
|
|
@@ -145,13 +160,14 @@ export async function analyzeAllocations(input) {
|
|
|
145
160
|
if (!existsSync(tracePath)) {
|
|
146
161
|
throw new Error(`Trace bundle not found: ${tracePath}`);
|
|
147
162
|
}
|
|
163
|
+
const { allocations: schemaName } = await fetchDiscoveredSchemas(runCommand, tracePath, ["allocations"]);
|
|
148
164
|
const result = await runCommand("xcrun", [
|
|
149
165
|
"xctrace",
|
|
150
166
|
"export",
|
|
151
167
|
"--input",
|
|
152
168
|
tracePath,
|
|
153
169
|
"--xpath",
|
|
154
|
-
|
|
170
|
+
`/trace-toc/run/data/table[@schema="${schemaName}"]`,
|
|
155
171
|
], { timeoutMs: 5 * 60_000 });
|
|
156
172
|
if (result.code !== 0) {
|
|
157
173
|
throw new Error(`xctrace export failed (code ${result.code}): ${result.stderr || result.stdout}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeAllocations.js","sourceRoot":"","sources":["../../src/tools/analyzeAllocations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,+IAA+I,CAChJ;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CACP,uHAAuH,CACxH;IACH,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzeAllocations.js","sourceRoot":"","sources":["../../src/tools/analyzeAllocations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { DataStatus } from "../types.js";
|
|
2
|
+
import type { DataStatus, SupportStatus } from "../types.js";
|
|
3
3
|
export declare const analyzeAnimationHitchesSchema: z.ZodObject<{
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
@@ -62,8 +62,12 @@ export interface AnalyzeAnimationHitchesResult {
|
|
|
62
62
|
/**
|
|
63
63
|
* Disambiguates empty arrays into "no data in the trace" vs "trace could
|
|
64
64
|
* not be exported" vs "data was exported partially". See {@link DataStatus}.
|
|
65
|
+
*
|
|
66
|
+
* @deprecated v1.14 item I. Use `supportStatus[]` instead.
|
|
65
67
|
*/
|
|
66
68
|
status: DataStatus;
|
|
69
|
+
/** v1.14+. Unified per-area status. See {@link SupportStatus}. */
|
|
70
|
+
supportStatus: SupportStatus[];
|
|
67
71
|
}
|
|
68
72
|
/** Pure: turn parsed XML into the analyzed result. */
|
|
69
73
|
export declare function analyzeAnimationHitchesFromXml(xml: string, tracePath: string, topN?: number, minDurationMs?: number, timeRangeMs?: {
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { resolve as resolvePath } from "node:path";
|
|
4
4
|
import { runCommand } from "../runtime/exec.js";
|
|
5
|
+
import { fetchDiscoveredSchemas } from "../parsers/schemaDiscovery.js";
|
|
5
6
|
import { parseXctraceXml, asNumber, asFormatted, } from "../parsers/xctraceXml.js";
|
|
6
7
|
import { outputFormatField } from "../runtime/responseFormatter.js";
|
|
7
8
|
export const analyzeAnimationHitchesSchema = z.object({
|
|
@@ -49,6 +50,13 @@ export function analyzeAnimationHitchesFromXml(xml, tracePath, topN = 10, minDur
|
|
|
49
50
|
top: [],
|
|
50
51
|
diagnosis: "No animation-hitches table found in the trace.",
|
|
51
52
|
status: "not_present",
|
|
53
|
+
supportStatus: [
|
|
54
|
+
{
|
|
55
|
+
kind: "animation-hitches",
|
|
56
|
+
status: "not_present",
|
|
57
|
+
reason: "Schema absent from the trace TOC.",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
52
60
|
};
|
|
53
61
|
}
|
|
54
62
|
const all = [];
|
|
@@ -104,6 +112,13 @@ export function analyzeAnimationHitchesFromXml(xml, tracePath, topN = 10, minDur
|
|
|
104
112
|
top,
|
|
105
113
|
diagnosis,
|
|
106
114
|
status: "available",
|
|
115
|
+
supportStatus: [
|
|
116
|
+
{
|
|
117
|
+
kind: "animation-hitches",
|
|
118
|
+
status: "available",
|
|
119
|
+
sourceSchemas: ["animation-hitches"],
|
|
120
|
+
},
|
|
121
|
+
],
|
|
107
122
|
};
|
|
108
123
|
}
|
|
109
124
|
function buildDiagnosis(rows, perceptible, longestMs, averageMs) {
|
|
@@ -126,13 +141,14 @@ export async function analyzeAnimationHitches(input) {
|
|
|
126
141
|
if (!existsSync(tracePath)) {
|
|
127
142
|
throw new Error(`Trace bundle not found: ${tracePath}`);
|
|
128
143
|
}
|
|
144
|
+
const { "animation-hitches": schemaName } = await fetchDiscoveredSchemas(runCommand, tracePath, ["animation-hitches"]);
|
|
129
145
|
const result = await runCommand("xcrun", [
|
|
130
146
|
"xctrace",
|
|
131
147
|
"export",
|
|
132
148
|
"--input",
|
|
133
149
|
tracePath,
|
|
134
150
|
"--xpath",
|
|
135
|
-
|
|
151
|
+
`/trace-toc/run/data/table[@schema="${schemaName}"]`,
|
|
136
152
|
], { timeoutMs: 5 * 60_000 });
|
|
137
153
|
if (result.code !== 0) {
|
|
138
154
|
throw new Error(`xctrace export failed (code ${result.code}): ${result.stderr || result.stdout}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeAnimationHitches.js","sourceRoot":"","sources":["../../src/tools/analyzeAnimationHitches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,6JAA6J,CAC9J;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CACP,kJAAkJ,CACnJ;IACH,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;KAChC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,8PAA8P,CAC/P;IACH,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzeAnimationHitches.js","sourceRoot":"","sources":["../../src/tools/analyzeAnimationHitches.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import type { SupportStatus } from "../types.js";
|
|
2
3
|
export declare const analyzeAppLaunchSchema: z.ZodObject<{
|
|
3
4
|
tracePath: z.ZodString;
|
|
4
5
|
outputFormat: z.ZodOptional<z.ZodEnum<["markdown", "json", "both", "verify-fix-table"]>>;
|
|
@@ -31,6 +32,8 @@ export interface AnalyzeAppLaunchResult {
|
|
|
31
32
|
/** Phase that took the largest share of launch time. */
|
|
32
33
|
slowestPhase?: PhaseEntry;
|
|
33
34
|
diagnosis: string;
|
|
35
|
+
/** v1.14+. Unified per-area status. See {@link SupportStatus}. */
|
|
36
|
+
supportStatus: SupportStatus[];
|
|
34
37
|
}
|
|
35
38
|
/** Pure: turn parsed XML into the structured result. */
|
|
36
39
|
export declare function analyzeAppLaunchFromXml(xml: string, tracePath: string): AnalyzeAppLaunchResult;
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { resolve as resolvePath } from "node:path";
|
|
4
4
|
import { runCommand } from "../runtime/exec.js";
|
|
5
|
+
import { fetchDiscoveredSchemas } from "../parsers/schemaDiscovery.js";
|
|
5
6
|
import { parseXctraceXml, asNumber, asFormatted, } from "../parsers/xctraceXml.js";
|
|
6
7
|
import { outputFormatField } from "../runtime/responseFormatter.js";
|
|
7
8
|
export const analyzeAppLaunchSchema = z.object({
|
|
@@ -33,6 +34,13 @@ export function analyzeAppLaunchFromXml(xml, tracePath) {
|
|
|
33
34
|
launchType: "unknown",
|
|
34
35
|
phases: [],
|
|
35
36
|
diagnosis: "No app-launch table found in the trace.",
|
|
37
|
+
supportStatus: [
|
|
38
|
+
{
|
|
39
|
+
kind: "app-launch",
|
|
40
|
+
status: "not_present",
|
|
41
|
+
reason: "Schema absent from the trace TOC.",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
36
44
|
};
|
|
37
45
|
}
|
|
38
46
|
// The app-launch schema can include rows describing per-phase durations and
|
|
@@ -88,6 +96,13 @@ export function analyzeAppLaunchFromXml(xml, tracePath) {
|
|
|
88
96
|
phases,
|
|
89
97
|
slowestPhase,
|
|
90
98
|
diagnosis,
|
|
99
|
+
supportStatus: [
|
|
100
|
+
{
|
|
101
|
+
kind: "app-launch",
|
|
102
|
+
status: "available",
|
|
103
|
+
sourceSchemas: ["app-launch"],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
91
106
|
};
|
|
92
107
|
}
|
|
93
108
|
function phaseOrder(phase) {
|
|
@@ -113,13 +128,14 @@ export async function analyzeAppLaunch(input) {
|
|
|
113
128
|
if (!existsSync(tracePath)) {
|
|
114
129
|
throw new Error(`Trace bundle not found: ${tracePath}`);
|
|
115
130
|
}
|
|
131
|
+
const { "app-launch": schemaName } = await fetchDiscoveredSchemas(runCommand, tracePath, ["app-launch"]);
|
|
116
132
|
const result = await runCommand("xcrun", [
|
|
117
133
|
"xctrace",
|
|
118
134
|
"export",
|
|
119
135
|
"--input",
|
|
120
136
|
tracePath,
|
|
121
137
|
"--xpath",
|
|
122
|
-
|
|
138
|
+
`/trace-toc/run/data/table[@schema="${schemaName}"]`,
|
|
123
139
|
], { timeoutMs: 5 * 60_000 });
|
|
124
140
|
if (result.code !== 0) {
|
|
125
141
|
throw new Error(`xctrace export failed (code ${result.code}): ${result.stderr || result.stdout}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeAppLaunch.js","sourceRoot":"","sources":["../../src/tools/analyzeAppLaunch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzeAppLaunch.js","sourceRoot":"","sources":["../../src/tools/analyzeAppLaunch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { DataStatus } from "../types.js";
|
|
2
|
+
import type { DataStatus, SupportStatus } from "../types.js";
|
|
3
3
|
export declare const analyzeHangsSchema: z.ZodObject<{
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
@@ -92,6 +92,25 @@ export interface HangEntry {
|
|
|
92
92
|
* undefined when no frame was provided for this hang at all. */
|
|
93
93
|
mainThreadViolations?: MainThreadViolation[];
|
|
94
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Entry from the `hang-risks` schema. v1.14.
|
|
97
|
+
*
|
|
98
|
+
* Different shape from `HangEntry`: `hang-risks` reports point-in-time RISK
|
|
99
|
+
* annotations emitted by the iOS runtime (e.g. "Hang Risk", "Severe Hang
|
|
100
|
+
* Risk" narrative events) rather than measured durations. No `durationNs`
|
|
101
|
+
* field exists because risks have no duration. The Severity column buckets
|
|
102
|
+
* the annotation; `backtrace` is a stringified stack at the moment the
|
|
103
|
+
* risk was annotated.
|
|
104
|
+
*/
|
|
105
|
+
export interface HangRiskEntry {
|
|
106
|
+
timestampNs: number;
|
|
107
|
+
timestampFmt: string;
|
|
108
|
+
severity: string;
|
|
109
|
+
eventType: string;
|
|
110
|
+
message: string;
|
|
111
|
+
threadName?: string;
|
|
112
|
+
backtrace?: string;
|
|
113
|
+
}
|
|
95
114
|
export interface AnalyzeHangsResult {
|
|
96
115
|
ok: boolean;
|
|
97
116
|
tracePath: string;
|
|
@@ -105,18 +124,59 @@ export interface AnalyzeHangsResult {
|
|
|
105
124
|
};
|
|
106
125
|
/** Filtered + sorted hangs, capped to topN. */
|
|
107
126
|
top: HangEntry[];
|
|
127
|
+
/**
|
|
128
|
+
* v1.14: hang-risks schema events. Apple-runtime risk annotations
|
|
129
|
+
* complementary to the measured potential-hangs above. Absent when
|
|
130
|
+
* the schema was not present in the trace OR when xctrace failed to
|
|
131
|
+
* export it; present (possibly empty array) when the schema was
|
|
132
|
+
* exported successfully.
|
|
133
|
+
*/
|
|
134
|
+
risks?: HangRiskEntry[];
|
|
135
|
+
/** v1.14: hang-risks aggregates. Mirrors `totals` for `top[]`. Absent when the schema was not exported. */
|
|
136
|
+
risksTotals?: {
|
|
137
|
+
rows: number;
|
|
138
|
+
bySeverity: Record<string, number>;
|
|
139
|
+
};
|
|
108
140
|
diagnosis: string;
|
|
109
141
|
/**
|
|
110
142
|
* Disambiguates empty arrays into "no data in the trace" vs "trace could
|
|
111
143
|
* not be exported" vs "data was exported partially". See {@link DataStatus}.
|
|
144
|
+
*
|
|
145
|
+
* @deprecated v1.14 item I. Use `supportStatus[]` instead. Kept for
|
|
146
|
+
* backwards compatibility with v1.13 callers.
|
|
112
147
|
*/
|
|
113
148
|
status: DataStatus;
|
|
149
|
+
/**
|
|
150
|
+
* v1.14+. Unified per-area status surface. For analyzeHangs this
|
|
151
|
+
* contains one entry for the `potential-hangs` schema and a second
|
|
152
|
+
* for `hang-risks` when that schema was discovered. See {@link
|
|
153
|
+
* SupportStatus}.
|
|
154
|
+
*/
|
|
155
|
+
supportStatus: SupportStatus[];
|
|
114
156
|
}
|
|
115
|
-
/** Pure: turn parsed XML rows into our analyzed result.
|
|
157
|
+
/** Pure: turn parsed XML rows into our analyzed result. The optional
|
|
158
|
+
* `hangRisksXml` (v1.14) is parsed via {@link analyzeHangRisksFromXml}
|
|
159
|
+
* and surfaced on `result.risks[]` + `result.risksTotals`. */
|
|
116
160
|
export declare function analyzeHangsFromXml(xml: string, tracePath: string, topN?: number, minDurationMs?: number, timeRangeMs?: {
|
|
117
161
|
startMs: number;
|
|
118
162
|
endMs: number;
|
|
119
|
-
}, topFramesByHangStartNs?: Readonly<Record<string, string
|
|
163
|
+
}, topFramesByHangStartNs?: Readonly<Record<string, string>>, hangRisksXml?: string): AnalyzeHangsResult;
|
|
164
|
+
/**
|
|
165
|
+
* Pure: parse `hang-risks` schema XML into structured risk entries.
|
|
166
|
+
*
|
|
167
|
+
* v1.14. The hang-risks schema is complementary to potential-hangs: it
|
|
168
|
+
* carries runtime-emitted "Hang Risk" / "Severe Hang Risk" annotations
|
|
169
|
+
* with a backtrace at the moment of risk detection but NO measured
|
|
170
|
+
* duration. Output is sorted by timestamp ascending so callers can see
|
|
171
|
+
* the chronological order of risks during the recording.
|
|
172
|
+
*
|
|
173
|
+
* Returns `{ rows: [], bySeverity: {} }` when the schema is absent.
|
|
174
|
+
*/
|
|
175
|
+
export declare function analyzeHangRisksFromXml(xml: string, topN?: number): {
|
|
176
|
+
rows: HangRiskEntry[];
|
|
177
|
+
total: number;
|
|
178
|
+
bySeverity: Record<string, number>;
|
|
179
|
+
};
|
|
120
180
|
/**
|
|
121
181
|
* Pure: walk parsed time-profile rows + hang entries, correlate samples
|
|
122
182
|
* to hang windows by timestamp, return a `startNs -> topFrame` map.
|