memorydetective 1.16.0 → 1.17.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/parsers/schemaDiscovery.d.ts +26 -0
  3. package/dist/parsers/schemaDiscovery.js +40 -11
  4. package/dist/parsers/schemaDiscovery.js.map +1 -1
  5. package/dist/runtime/parseBooleanEnv.d.ts +22 -0
  6. package/dist/runtime/parseBooleanEnv.js +47 -0
  7. package/dist/runtime/parseBooleanEnv.js.map +1 -0
  8. package/dist/runtime/platformCheck.js +4 -1
  9. package/dist/runtime/platformCheck.js.map +1 -1
  10. package/dist/runtime/securityFlags.js +3 -1
  11. package/dist/runtime/securityFlags.js.map +1 -1
  12. package/dist/tools/analyzeEnergyImpact.d.ts +7 -1
  13. package/dist/tools/analyzeEnergyImpact.js +9 -3
  14. package/dist/tools/analyzeEnergyImpact.js.map +1 -1
  15. package/dist/tools/analyzeHangs.js +21 -12
  16. package/dist/tools/analyzeHangs.js.map +1 -1
  17. package/dist/tools/analyzeLeakTimeline.js +27 -10
  18. package/dist/tools/analyzeLeakTimeline.js.map +1 -1
  19. package/dist/tools/analyzeMemoryFootprint.js +1 -2
  20. package/dist/tools/analyzeMemoryFootprint.js.map +1 -1
  21. package/dist/tools/analyzeNetworkActivity.d.ts +6 -1
  22. package/dist/tools/analyzeNetworkActivity.js +13 -1
  23. package/dist/tools/analyzeNetworkActivity.js.map +1 -1
  24. package/dist/tools/cleanupTraces.js +2 -1
  25. package/dist/tools/cleanupTraces.js.map +1 -1
  26. package/dist/tools/countAlive.d.ts +51 -5
  27. package/dist/tools/countAlive.js +140 -11
  28. package/dist/tools/countAlive.js.map +1 -1
  29. package/dist/tools/inspectTrace.js +22 -1
  30. package/dist/tools/inspectTrace.js.map +1 -1
  31. package/dist/tools/recordTimeProfile.d.ts +24 -0
  32. package/dist/tools/recordTimeProfile.js +38 -5
  33. package/dist/tools/recordTimeProfile.js.map +1 -1
  34. package/dist/tools/recordViaInstrumentsApp.d.ts +25 -0
  35. package/dist/tools/recordViaInstrumentsApp.js +97 -23
  36. package/dist/tools/recordViaInstrumentsApp.js.map +1 -1
  37. package/dist/tools/verifyFix.d.ts +18 -3
  38. package/dist/tools/verifyFix.js +51 -31
  39. package/dist/tools/verifyFix.js.map +1 -1
  40. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -6,6 +6,41 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.17.0] - 2026-05-16
10
+
11
+ Reliability pass. v1.16 closed the macOS 26.x recording gap with `recordViaInstrumentsApp`. v1.17 sweeps the audit punch list that surfaced after dogfooding: 14 bugs across three tiers, 3 known limitations documented, 3 tech-debt items deferred. The headlines are env-var truthy parsing (every `MEMORYDETECTIVE_*` boolean now accepts `1 / true / yes / on`, was `1`-only), a `verifyFix` whitelist that supports exact / substring / regex modes (was substring-only), the `recordViaInstrumentsApp` watcher catching saves outside the watch dir, and the `inspectTrace` fault-tolerant fallback so a wedged 52K bundle no longer throws. 41 MCP tools, 701 tests (+24 vs v1.16).
12
+
13
+ ### Fixed
14
+
15
+ #### Tier 1 (user-visible)
16
+
17
+ - **`recordViaInstrumentsApp` watcher misses saves outside `watchDir` (B-01).** Pre-v1.17 the tool only watched the filesystem path; users who hit Save in Instruments.app and accepted the default Desktop location would time out even though the trace was on disk. Now queries the running Instruments.app via AppleScript every poll for any `document` whose file path was set after the tool started; on first match outside `watchDir` returns the path with `savedOutsideWatchDir: true`. Uses the documented `Instruments.sdef` `file of document` accessor only (no unsupported verbs).
18
+ - **`verifyFix.expectedAliveClasses` supports per-entry mode (B-02).** Pre-v1.17 every whitelist entry was matched as a case-insensitive substring. Caller wanting "match exactly `UIRemoteKeyboardWindow`, do not match `MyUIRemoteKeyboardWindowWrapper`" had no way to express it. Schema now accepts `string` (defaults to substring for backwards compat) or `{ pattern: string, mode: "exact" | "substring" | "regex" }`. ESLint and Jest both use single-mode matching, but their users have asked for the inverse in tracked issues; we picked the opposite trade-off.
19
+ - **`MEMORYDETECTIVE_*` env booleans accept the strtobool truthy set (B-03).** Pre-v1.17 only the literal string `1` turned a gate on. Users exporting `MEMORYDETECTIVE_ALLOW_LAUNCH=true` or `=yes` saw silent no-op behavior. v1.17 normalizes the five booleans through `parseBooleanEnv`, which accepts `1 / true / t / yes / y / on` (truthy) and `0 / false / f / no / n / off` (falsy), case-insensitive. Unrecognized values emit a one-time stderr warning per var so the operator knows the setting was ignored. Mirrors `envalid`'s `bool()` semantics without taking the dependency.
20
+ - **`maybeOpenInInstruments` checks bundle viability before opening (B-04).** Pre-v1.17 the auto-open path would launch a wedged 52K macOS 26.x stub bundle in Instruments.app, where it presents a Document Missing Template Error dialog the operator has to dismiss. Now probes `Trace1.run/MANIFEST.plist` before calling `open`; on missing manifest, skips the open and surfaces the bundle status to the caller. The exported `classifyBundleOnDisk(tracePath)` helper returns `"unknown" | "salvageable" | "wedged"` for reuse.
21
+
22
+ #### Tier 2 (silently sub-optimal)
23
+
24
+ - **`inspectTrace` fault-tolerant fallback when `xctrace export --toc` fails (B-05).** Pre-v1.17 a failed TOC export threw, which broke the entire MCP call. Now returns `ok: true` with `schemas: []`, `rowCounts: {}`, `suggestedNextCalls: []`, and a diagnosis string naming the 52K macOS 26.x stub pattern so callers can self-diagnose. Throwing is reserved for missing trace paths.
25
+ - **`schemaDiscovery.fetchDiscoveredSchemasWithStatus` surfaces failures (B-06).** New sibling of `fetchDiscoveredSchemas` returns `{ schemas, status: "ok" | "failed", reason? }` so trace analyzers can include a discovery-failure entry in `supportStatus[]` instead of silently using canonical schema names against a renamed-schema trace. Emits a one-time stderr warning per `tracePath:reason`, gated on `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY`. Legacy `fetchDiscoveredSchemas` keeps its silent-fallback contract.
26
+ - **`countByClassWithBytes` reports min/max/median for variable-size classes (B-07).** Pre-v1.17 we returned the first observed `instanceSize` as canonical for every class. Misled callers inspecting `NSData`, `NSString`, `CFData` whose per-instance size is payload-dependent. Now: fixed-size classes return a single `instanceSizeBytes` value as before; variable-size classes return `{ instanceSizeBytes: median, instanceSizeBytesMin, instanceSizeBytesMax, instanceSizeBytesMedian }`. `totalBytes` unchanged. `CountAliveEntry` propagates the spread through per-class and topN paths.
27
+ - **`analyzeHangs.supportStatus[]` always includes both schema entries (B-08).** Pre-v1.17 a caller without `hangRisksXml` saw a single entry, a caller with it saw two. Agent code branching on `supportStatus.find(s => s.kind === "hang-risks")` could not distinguish "I did not ask" from "schema absent". Both entries are now always present; the missing-XML path returns `status: "not_present"` with reason `"caller did not provide hangRisksXml"`.
28
+ - **`recordTimeProfile.bundleStatus` reflects on-disk reality (B-09).** New `bundleStatus: "unknown" | "salvageable" | "wedged"` field on the response. The timeout path now probes `MANIFEST.plist` via `classifyBundleOnDisk` so callers branching on `tracePath ? "have trace" : "no trace"` get an honest signal.
29
+ - **`countAlive` framework-noise filter is configurable (B-10).** New inputs: `excludeFrameworkNoise: boolean` (default true), `additionalNoisePatterns?: string[]`, `unsuppressClassPatterns?: string[]`, `noiseAuditMode: boolean`. The curated noise list (calibrated for the v1.5 notelet investigation) remains the default. Audit mode returns a `noiseAudit[]` array listing every filtered class with reason `'default-list'`, `'additional-pattern'`, or `'kept-by-unsuppress'`. User-supplied regex strings compile with a literal-escape fallback on syntax errors.
30
+
31
+ #### Tier 3 (edge case / cosmetic)
32
+
33
+ - **`extractHost` parses IPv6 bracket form (B-11).** `analyzeNetworkActivity` was misreporting hosts like `[::1]:443` as the empty string. Now strips brackets and splits the port correctly.
34
+ - **`normalizeBucket` priority fix (B-12).** `analyzeEnergyImpact` was matching `"high"` before `"foreground"` in xctrace's varying-case bucket strings. Reordered to check the named buckets first.
35
+ - **Redundant `t.schema === "memory-footprint"` equality removed (B-13).** `analyzeMemoryFootprint` was double-checking after `discoverSchemas` already resolved the family name.
36
+ - **`analyzeLeakTimeline` handles column-drift gracefully (B-14).** When every row is skipped due to missing `className`, returns `status: "partial"` with a reason naming the column drift instead of silently emitting an empty timeline.
37
+
38
+ ### Behavior changes (informational)
39
+
40
+ - The `MEMORYDETECTIVE_*` boolean env vars are now case-insensitively recognized for the strtobool set. Setting `=yes` or `=true` now turns gates on; pre-v1.17 it did not. Operators who deliberately set unrecognized values will see a stderr warning but no behavioral change (unrecognized falls back to default).
41
+ - `verifyFix.expectedAliveClasses` string entries continue to behave as case-insensitive substring matches for backwards compat. The new object form `{ pattern, mode }` is opt-in.
42
+ - The deprecated `notice` and `status` aliases on trace analyzers stay (will be removed in a future major bump).
43
+
9
44
  ## [1.16.0] - 2026-05-15
10
45
 
11
46
  macOS 26.x recording-unblock release. The single feature that v1.14 punted on. `xcrun xctrace record --time-limit Ns` is broken on macOS 26.x simulator targets (documented in v1.14). Instruments.app GUI still produces valid `.trace` bundles. v1.16 ships the wrapper that automates the surrounding choreography: open the app, prompt the user with step-by-step instructions, poll for the saved trace, chain into `inspectTrace` on success. 41 MCP tools, 677 tests.
@@ -86,3 +86,29 @@ export interface SchemaDiscoveryRunner {
86
86
  }>;
87
87
  }
88
88
  export declare function fetchDiscoveredSchemas<F extends SchemaFamily>(runCommand: SchemaDiscoveryRunner, tracePath: string, families: readonly F[]): Promise<Record<F, string>>;
89
+ /**
90
+ * v1.17 B-06. Same as {@link fetchDiscoveredSchemas} but also returns a
91
+ * discovery status so callers can surface "we fell back" via the unified
92
+ * `supportStatus[]` instead of silently using canonical names.
93
+ *
94
+ * Status values:
95
+ *
96
+ * - `ok`: TOC fetched, pattern match succeeded for at least one family.
97
+ * (When a specific family does not match, the canonical name is still
98
+ * returned for it, but the overall status is still `ok` because the TOC
99
+ * itself was readable.)
100
+ * - `failed`: `xctrace --toc` returned non-zero, or threw, or returned
101
+ * empty stdout. `schemas` are all canonical fallbacks.
102
+ *
103
+ * The legacy `fetchDiscoveredSchemas` keeps its existing silent-fallback
104
+ * contract for callers that do not care.
105
+ */
106
+ export interface SchemaDiscoveryStatus<F extends SchemaFamily> {
107
+ schemas: Record<F, string>;
108
+ status: "ok" | "failed";
109
+ /** When status is `failed`, a short reason suitable for `supportStatus.reason`. */
110
+ reason?: string;
111
+ }
112
+ export declare function fetchDiscoveredSchemasWithStatus<F extends SchemaFamily>(runCommand: SchemaDiscoveryRunner, tracePath: string, families: readonly F[]): Promise<SchemaDiscoveryStatus<F>>;
113
+ /** Test hook — clears the one-time warning dedupe. */
114
+ export declare function _resetSchemaDiscoveryWarningsForTests(): void;
@@ -123,22 +123,51 @@ export function discoverSchemas(tocXml, families) {
123
123
  return out;
124
124
  }
125
125
  export async function fetchDiscoveredSchemas(runCommand, tracePath, families) {
126
+ const { schemas } = await fetchDiscoveredSchemasWithStatus(runCommand, tracePath, families);
127
+ return schemas;
128
+ }
129
+ export async function fetchDiscoveredSchemasWithStatus(runCommand, tracePath, families) {
130
+ const fallback = () => {
131
+ const out = {};
132
+ for (const f of families)
133
+ out[f] = CANONICAL_SCHEMA_NAME[f];
134
+ return out;
135
+ };
126
136
  try {
127
137
  const result = await runCommand("xcrun", ["xctrace", "export", "--input", tracePath, "--toc"], { timeoutMs: 60_000 });
128
138
  if (result.code !== 0) {
129
- // TOC fetch failed; return canonical fallback.
130
- const out = {};
131
- for (const f of families)
132
- out[f] = CANONICAL_SCHEMA_NAME[f];
133
- return out;
139
+ const reason = `xctrace --toc failed (code ${result.code}): ` +
140
+ (result.stderr.trim() || result.stdout.trim() || "<no output>");
141
+ warnSchemaDiscoveryOnce(tracePath, reason);
142
+ return { schemas: fallback(), status: "failed", reason };
143
+ }
144
+ if (!result.stdout.trim()) {
145
+ const reason = "xctrace --toc returned empty stdout";
146
+ warnSchemaDiscoveryOnce(tracePath, reason);
147
+ return { schemas: fallback(), status: "failed", reason };
134
148
  }
135
- return discoverSchemas(result.stdout, families);
149
+ return { schemas: discoverSchemas(result.stdout, families), status: "ok" };
136
150
  }
137
- catch {
138
- const out = {};
139
- for (const f of families)
140
- out[f] = CANONICAL_SCHEMA_NAME[f];
141
- return out;
151
+ catch (err) {
152
+ const reason = `xctrace --toc threw: ${err?.message ?? String(err)}`;
153
+ warnSchemaDiscoveryOnce(tracePath, reason);
154
+ return { schemas: fallback(), status: "failed", reason };
142
155
  }
143
156
  }
157
+ const schemaDiscoveryWarnings = new Set();
158
+ function warnSchemaDiscoveryOnce(tracePath, reason) {
159
+ const key = `${tracePath}:${reason}`;
160
+ if (schemaDiscoveryWarnings.has(key))
161
+ return;
162
+ schemaDiscoveryWarnings.add(key);
163
+ // Respect the global stderr-mute used elsewhere in the codebase.
164
+ if (process.env.MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY)
165
+ return;
166
+ process.stderr.write(`[memorydetective] schemaDiscovery: ${reason} (path: ${tracePath}). ` +
167
+ `Analyzers will use canonical schema names; results may be stale on traces that renamed schemas.\n`);
168
+ }
169
+ /** Test hook — clears the one-time warning dedupe. */
170
+ export function _resetSchemaDiscoveryWarningsForTests() {
171
+ schemaDiscoveryWarnings.clear();
172
+ }
144
173
  //# sourceMappingURL=schemaDiscovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaDiscovery.js","sourceRoot":"","sources":["../../src/parsers/schemaDiscovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaDiscovery.js","sourceRoot":"","sources":["../../src/parsers/schemaDiscovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Parse a string env var value into a boolean using the strtobool set:
3
+ *
4
+ * truthy: 1 / true / t / yes / y / on
5
+ * falsy: 0 / false / f / no / n / off
6
+ *
7
+ * Case-insensitive. Leading / trailing whitespace tolerated. The set
8
+ * is the same one Python's `distutils.util.strtobool` uses and that
9
+ * envalid's `bool()` accepts. v1.17 B-03.
10
+ *
11
+ * On unrecognized non-empty input, emits a one-time stderr warning
12
+ * naming the env var and falls back to `defaultValue`. The warning is
13
+ * suppressed when `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1` is set
14
+ * (consistent with the rest of our advisory plumbing).
15
+ *
16
+ * `varName` is required so the warning surfaces a useful message; pass
17
+ * the literal env var name (e.g. "MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS")
18
+ * even if you read it from another source.
19
+ */
20
+ export declare function parseBooleanEnv(raw: string | undefined, defaultValue: boolean, varName: string): boolean;
21
+ /** Test-only: reset the once-per-var warning flag set. */
22
+ export declare function resetParseBooleanEnvWarningsForTests(): void;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Parse a string env var value into a boolean using the strtobool set:
3
+ *
4
+ * truthy: 1 / true / t / yes / y / on
5
+ * falsy: 0 / false / f / no / n / off
6
+ *
7
+ * Case-insensitive. Leading / trailing whitespace tolerated. The set
8
+ * is the same one Python's `distutils.util.strtobool` uses and that
9
+ * envalid's `bool()` accepts. v1.17 B-03.
10
+ *
11
+ * On unrecognized non-empty input, emits a one-time stderr warning
12
+ * naming the env var and falls back to `defaultValue`. The warning is
13
+ * suppressed when `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1` is set
14
+ * (consistent with the rest of our advisory plumbing).
15
+ *
16
+ * `varName` is required so the warning surfaces a useful message; pass
17
+ * the literal env var name (e.g. "MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS")
18
+ * even if you read it from another source.
19
+ */
20
+ const TRUTHY = new Set(["1", "true", "t", "yes", "y", "on"]);
21
+ const FALSY = new Set(["0", "false", "f", "no", "n", "off"]);
22
+ const warnedVars = new Set();
23
+ export function parseBooleanEnv(raw, defaultValue, varName) {
24
+ if (raw == null)
25
+ return defaultValue;
26
+ const trimmed = raw.trim();
27
+ if (trimmed === "")
28
+ return defaultValue;
29
+ const lc = trimmed.toLowerCase();
30
+ if (TRUTHY.has(lc))
31
+ return true;
32
+ if (FALSY.has(lc))
33
+ return false;
34
+ // Unrecognized non-empty value: warn once per var.
35
+ if (!warnedVars.has(varName) &&
36
+ process.env.MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY !== "1") {
37
+ warnedVars.add(varName);
38
+ const accepted = "1 / true / t / yes / y / on | 0 / false / f / no / n / off";
39
+ process.stderr.write(`[memorydetective] ${varName}="${raw}" is not a recognized boolean. Accepted (case-insensitive): ${accepted}. Falling back to default (${defaultValue}).\n`);
40
+ }
41
+ return defaultValue;
42
+ }
43
+ /** Test-only: reset the once-per-var warning flag set. */
44
+ export function resetParseBooleanEnvWarningsForTests() {
45
+ warnedVars.clear();
46
+ }
47
+ //# sourceMappingURL=parseBooleanEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseBooleanEnv.js","sourceRoot":"","sources":["../../src/runtime/parseBooleanEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAErC,MAAM,UAAU,eAAe,CAC7B,GAAuB,EACvB,YAAqB,EACrB,OAAe;IAEf,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,YAAY,CAAC;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,YAAY,CAAC;IACxC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,mDAAmD;IACnD,IACE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,GAAG,EAC9D,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,4DAA4D,CAAC;QAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,OAAO,KAAK,GAAG,+DAA+D,QAAQ,8BAA8B,YAAY,MAAM,CAC5J,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,oCAAoC;IAClD,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -16,6 +16,7 @@
16
16
  * before any tool work.
17
17
  */
18
18
  import os from "node:os";
19
+ import { parseBooleanEnv } from "./parseBooleanEnv.js";
19
20
  const ADVISORY_MESSAGE = "macOS 26.x has an Apple-side kernel regression in `task_for_pid` against simulator processes. " +
20
21
  "`leaks --outputGraph`, `heap`, and `xctrace --template Allocations` all abort with " +
21
22
  "`Failed to get DYLD info for task` / minimal-corpse, even with `MallocStackLogging=1` " +
@@ -49,8 +50,10 @@ const ADVISORY_ACTIONS = [
49
50
  * @param osRelease - `os.release()` value (defaults to live).
50
51
  */
51
52
  export function getPlatformAdvisory(env = process.env, osPlatform = os.platform, osRelease = os.release) {
52
- if (env.MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY === "1")
53
+ // v1.17 B-03: accept the strtobool truthy set (1 / true / yes / on / etc.).
54
+ if (parseBooleanEnv(env.MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY, false, "MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY")) {
53
55
  return null;
56
+ }
54
57
  if (osPlatform() !== "darwin")
55
58
  return null;
56
59
  const release = osRelease();
@@ -1 +1 @@
1
- {"version":3,"file":"platformCheck.js","sourceRoot":"","sources":["../../src/runtime/platformCheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAQzB,MAAM,gBAAgB,GACpB,gGAAgG;IAChG,qFAAqF;IACrF,wFAAwF;IACxF,uFAAuF;IACvF,0FAA0F;IAC1F,yFAAyF;IACzF,cAAc,CAAC;AAEjB,MAAM,gBAAgB,GAAG;IACvB,mFAAmF;IACnF,yFAAyF;IACzF,+JAA+J;IAC/J,+FAA+F;CAChG,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAoD,OAAO,CAAC,GAAG,EAC/D,aAAoC,EAAE,CAAC,QAAQ,EAC/C,YAA0B,EAAE,CAAC,OAAO;IAEpC,IAAI,GAAG,CAAC,0CAA0C,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,UAAU,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,6EAA6E;IAC7E,6EAA6E;IAC7E,oBAAoB;IACpB,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,8BAA8B;QACrC,OAAO,EAAE,gBAAgB;QACzB,kBAAkB,EAAE,gBAAgB;KACrC,CAAC;AACJ,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAiC,EACjC,SAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAErE,IAAI,0BAA0B;QAAE,OAAO;IACvC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO;IAC7B,MAAM,CAAC,wCAAwC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IACrE,0BAA0B,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iCAAiC;IAC/C,0BAA0B,GAAG,KAAK,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"platformCheck.js","sourceRoot":"","sources":["../../src/runtime/platformCheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,gBAAgB,GACpB,gGAAgG;IAChG,qFAAqF;IACrF,wFAAwF;IACxF,uFAAuF;IACvF,0FAA0F;IAC1F,yFAAyF;IACzF,cAAc,CAAC;AAEjB,MAAM,gBAAgB,GAAG;IACvB,mFAAmF;IACnF,yFAAyF;IACzF,+JAA+J;IAC/J,+FAA+F;CAChG,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAoD,OAAO,CAAC,GAAG,EAC/D,aAAoC,EAAE,CAAC,QAAQ,EAC/C,YAA0B,EAAE,CAAC,OAAO;IAEpC,4EAA4E;IAC5E,IACE,eAAe,CACb,GAAG,CAAC,0CAA0C,EAC9C,KAAK,EACL,4CAA4C,CAC7C,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,6EAA6E;IAC7E,6EAA6E;IAC7E,oBAAoB;IACpB,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,8BAA8B;QACrC,OAAO,EAAE,gBAAgB;QACzB,kBAAkB,EAAE,gBAAgB;KACrC,CAAC;AACJ,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAiC,EACjC,SAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAErE,IAAI,0BAA0B;QAAE,OAAO;IACvC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO;IAC7B,MAAM,CAAC,wCAAwC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IACrE,0BAA0B,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iCAAiC;IAC/C,0BAA0B,GAAG,KAAK,CAAC;AACrC,CAAC"}
@@ -34,6 +34,7 @@
34
34
  */
35
35
  import os from "node:os";
36
36
  import { join as joinPath } from "node:path";
37
+ import { parseBooleanEnv } from "./parseBooleanEnv.js";
37
38
  export const DEFAULT_MAX_RECORDING_SECONDS = 300;
38
39
  export function defaultTraceRoot(homeDir = os.homedir()) {
39
40
  return joinPath(homeDir, "Library", "Application Support", "memorydetective", "traces");
@@ -59,7 +60,8 @@ export function defaultTraceRoot(homeDir = os.homedir()) {
59
60
  * or missing values fall back to the default location.
60
61
  */
61
62
  export function getSecurityFlags(env = process.env, homeDir = os.homedir()) {
62
- const allowLaunch = env.MEMORYDETECTIVE_ALLOW_LAUNCH === "1";
63
+ // v1.17 B-03: accept the strtobool truthy set.
64
+ const allowLaunch = parseBooleanEnv(env.MEMORYDETECTIVE_ALLOW_LAUNCH, false, "MEMORYDETECTIVE_ALLOW_LAUNCH");
63
65
  const rawMax = env.MEMORYDETECTIVE_MAX_RECORDING_SECONDS;
64
66
  let maxRecordingSeconds = DEFAULT_MAX_RECORDING_SECONDS;
65
67
  if (rawMax != null && rawMax !== "") {
@@ -1 +1 @@
1
- {"version":3,"file":"securityFlags.js","sourceRoot":"","sources":["../../src/runtime/securityFlags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAQ7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IAC7D,OAAO,QAAQ,CACb,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoD,OAAO,CAAC,GAAG,EAC/D,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,MAAM,WAAW,GAAG,GAAG,CAAC,4BAA4B,KAAK,GAAG,CAAC;IAE7D,MAAM,MAAM,GAAG,GAAG,CAAC,qCAAqC,CAAC;IACzD,IAAI,mBAAmB,GAAG,6BAA6B,CAAC;IACxD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC/C,MAAM,SAAS,GACb,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,0RAA0R,CAAC;AAE7R;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,GAAW;IAEX,OAAO,CACL,iCAAiC,SAAS,kCAAkC,GAAG,IAAI;QACnF,gGAAgG,CACjG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"securityFlags.js","sourceRoot":"","sources":["../../src/runtime/securityFlags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IAC7D,OAAO,QAAQ,CACb,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoD,OAAO,CAAC,GAAG,EAC/D,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,+CAA+C;IAC/C,MAAM,WAAW,GAAG,eAAe,CACjC,GAAG,CAAC,4BAA4B,EAChC,KAAK,EACL,8BAA8B,CAC/B,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,qCAAqC,CAAC;IACzD,IAAI,mBAAmB,GAAG,6BAA6B,CAAC;IACxD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC/C,MAAM,SAAS,GACb,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,0RAA0R,CAAC;AAE7R;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,GAAW;IAEX,OAAO,CACL,iCAAiC,SAAS,kCAAkC,GAAG,IAAI;QACnF,gGAAgG,CACjG,CAAC;AACJ,CAAC"}
@@ -62,7 +62,13 @@ export interface AnalyzeEnergyImpactResult {
62
62
  supportStatus: SupportStatus[];
63
63
  }
64
64
  /** Normalize whatever string xctrace puts in the bucket column to our
65
- * canonical enum. v1.15. Exported for testing. */
65
+ * canonical enum. v1.15. Exported for testing.
66
+ *
67
+ * v1.17: priority order fixed. "active" / "foreground" / "passive" /
68
+ * "background" are checked BEFORE "high" so strings like "highly active"
69
+ * classify as `active` (per the dominant lexical signal) instead of
70
+ * `high`. Long-tail edge case from real xctrace output, but observed
71
+ * enough to warrant the reorder. */
66
72
  export declare function normalizeBucket(raw: string | undefined): EnergyBucket;
67
73
  /** Pure: turn the energy-impact XML into the analyzed result. */
68
74
  export declare function analyzeEnergyImpactFromXml(xml: string, tracePath: string, topN?: number): AnalyzeEnergyImpactResult;
@@ -49,19 +49,25 @@ function pickString(row, keys) {
49
49
  return undefined;
50
50
  }
51
51
  /** Normalize whatever string xctrace puts in the bucket column to our
52
- * canonical enum. v1.15. Exported for testing. */
52
+ * canonical enum. v1.15. Exported for testing.
53
+ *
54
+ * v1.17: priority order fixed. "active" / "foreground" / "passive" /
55
+ * "background" are checked BEFORE "high" so strings like "highly active"
56
+ * classify as `active` (per the dominant lexical signal) instead of
57
+ * `high`. Long-tail edge case from real xctrace output, but observed
58
+ * enough to warrant the reorder. */
53
59
  export function normalizeBucket(raw) {
54
60
  if (!raw)
55
61
  return "unknown";
56
62
  const lc = raw.toLowerCase();
57
63
  if (lc.includes("idle"))
58
64
  return "idle";
59
- if (lc.includes("high"))
60
- return "high";
61
65
  if (lc.includes("active") || lc.includes("foreground"))
62
66
  return "active";
63
67
  if (lc.includes("passive") || lc.includes("background"))
64
68
  return "passive";
69
+ if (lc.includes("high"))
70
+ return "high";
65
71
  return "unknown";
66
72
  }
67
73
  /** Pure: turn the energy-impact XML into the analyzed result. */
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeEnergyImpact.js","sourceRoot":"","sources":["../../src/tools/analyzeEnergyImpact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzeEnergyImpact.js","sourceRoot":"","sources":["../../src/tools/analyzeEnergyImpact.ts"],"names":[],"mappings":"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"}
@@ -220,24 +220,33 @@ export function analyzeHangsFromXml(xml, tracePath, topN = 10, minDurationMs = 0
220
220
  : {}),
221
221
  diagnosis,
222
222
  status: "available",
223
+ // v1.17 B-08: supportStatus[] ALWAYS includes both potential-hangs
224
+ // and hang-risks entries so consumers can disambiguate the four
225
+ // distinct states by inspecting the array:
226
+ // 1. potential-hangs available + hang-risks available -> both schemas had rows
227
+ // 2. potential-hangs available + hang-risks not_present (reason: schema empty) -> exported, no rows
228
+ // 3. potential-hangs available + hang-risks not_present (reason: caller did not provide hangRisksXml) -> caller skipped
229
+ // 4. potential-hangs not_present (handled in the early-return branch above)
223
230
  supportStatus: [
224
231
  {
225
232
  kind: "potential-hangs",
226
233
  status: "available",
227
234
  sourceSchemas: ["potential-hangs"],
228
235
  },
229
- ...(risksAnalysis
230
- ? [
231
- {
232
- kind: "hang-risks",
233
- status: risksAnalysis.total > 0 ? "available" : "not_present",
234
- sourceSchemas: ["hang-risks"],
235
- ...(risksAnalysis.total === 0
236
- ? { reason: "Schema exported but no rows present." }
237
- : {}),
238
- },
239
- ]
240
- : []),
236
+ risksAnalysis
237
+ ? {
238
+ kind: "hang-risks",
239
+ status: risksAnalysis.total > 0 ? "available" : "not_present",
240
+ sourceSchemas: ["hang-risks"],
241
+ ...(risksAnalysis.total === 0
242
+ ? { reason: "Schema exported but no rows present." }
243
+ : {}),
244
+ }
245
+ : {
246
+ kind: "hang-risks",
247
+ status: "not_present",
248
+ reason: "Caller did not provide hangRisksXml; pass the hang-risks export to opt in.",
249
+ },
241
250
  ],
242
251
  };
243
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeHangs.js","sourceRoot":"","sources":["../../src/tools/analyzeHangs.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,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,2GAA2G,CAC5G;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CACP,8HAA8H,CAC/H;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,kOAAkO,CACnO;IACH,sBAAsB,EAAE,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,CACP,olBAAolB,CACrlB;IACH,0BAA0B,EAAE,CAAC;SAC1B,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,4rBAA4rB,CAC7rB;IACH,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;AAuCH,MAAM,gCAAgC,GAAyB;IAC7D,iEAAiE;IACjE,qEAAqE;IACrE,wDAAwD;IACxD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,+EAA+E,CAAC,IAAI,CAClF,CAAC,CACF;YACD,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC3C,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC1C,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACvC;IACD,qEAAqE;IACrE,mEAAmE;IACnE;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC1B,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC/C,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC5C;IACD,oEAAoE;IACpE,yEAAyE;IACzE;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACpD,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC5C,uBAAuB;YACvB,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9B,+BAA+B;YAC/B,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;IACD,oEAAoE;IACpE,iDAAiD;IACjD;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAChC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACrC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC3B,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC/C,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC5B;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,OAAO,GAAG,CAAC;IAEX,KAAK,MAAM,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;wDAGwD;AACxD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AA+ED;;+DAE+D;AAC/D,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,SAAiB,EACjB,IAAI,GAAG,EAAE,EACT,aAAa,GAAG,CAAC,EACjB,WAAgD,EAChD,sBAAyD,EACzD,YAAqB;IAErB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,SAAS;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;gBACZ,eAAe,EAAE,CAAC;aACnB;YACD,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,8CAA8C;YACzD,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE,mCAAmC;iBAC5C;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC;YACd,OAAO;YACP,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACtC,UAAU;YACV,UAAU,EAAE,UAAU,GAAG,SAAS;YAClC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC5C,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,UAAU,GAAG,aAAa;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;YACtC,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,EACvC,CAAC,CACF,CAAC;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;SAC3C,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAElB,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,sBAAsB,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAC5B,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3C,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,gBAAgB,GAAG,aAAa;QACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,SAAS,GAAG,kBAAkB,CAClC,QAAQ,CAAC,MAAM,EACf,KAAK,CAAC,MAAM,EACZ,UAAU,CAAC,MAAM,EACjB,SAAS,EACT,SAAS,EACT,aAAa,EAAE,KAAK,EACpB,gBAAgB,CACjB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC,MAAM;YACrB,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,SAAS;YACT,SAAS;YACT,eAAe;SAChB;QACD,GAAG;QACH,GAAG,CAAC,aAAa;YACf,CAAC,CAAC;gBACE,KAAK,EAAE,aAAa,CAAC,IAAI;gBACzB,WAAW,EAAE;oBACX,IAAI,EAAE,aAAa,CAAC,KAAK;oBACzB,UAAU,EAAE,aAAa,CAAC,UAAU;iBACrC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,SAAS;QACT,MAAM,EAAE,WAAW;QACnB,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,CAAC,iBAAiB,CAAC;aACnC;YACD,GAAG,CAAC,aAAa;gBACf,CAAC,CAAE;oBACC;wBACE,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;wBAC7D,aAAa,EAAE,CAAC,YAAY,CAAC;wBAC7B,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC;4BAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE;4BACpD,CAAC,CAAC,EAAE,CAAC;qBACR;iBACkB;gBACvB,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,KAAa,EACb,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,UAAmB,EACnB,gBAAyB;IAEzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,KAAK,UAAU,UAAU,cAAc,CAAC,CAAC;QAC5E,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,UAAU,GACd,gBAAgB,IAAI,IAAI,IAAI,gBAAgB,GAAG,CAAC;YAC9C,CAAC,CAAC,KAAK,gBAAgB,SAAS;YAChC,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,yBAAyB,UAAU,wBAAwB,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,IAAI,GAAG,EAAE;IAET,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC;YACX,WAAW;YACX,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;YACzC,QAAQ;YACR,SAAS;YACT,OAAO;YACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IACtD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAqD,EACrD,eAKE;IAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,SAAS;gBAAE,SAAS;YAC1E,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ;gBACf,qEAAqE;gBACrE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjE,EAAE,CAAC;YACL,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QAChC,mDAAmD;QACnD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC;QACzB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACpC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,QAAQ,GAAG,KAAK,CAAC;gBACjB,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,SAAiB,EACjB,UAAkB;IAIlB,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,OAAO,EACP;QACE,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,sCAAsC,UAAU,IAAI;KACrD,EACD,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAC1B,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,GACR,EAAE,CAAC;QACL,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,IAAI,IAAI;gBAAE,SAAS;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;YACjD,sEAAsE;YACtE,kDAAkD;YAClD,MAAM,UAAU,GAAG;gBACjB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7B,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC1B,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;gBACvB,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aAChC,CAAC;YACF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAC1D,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAwB;IAExB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,uBAAuB,GAAG,KAAK,CAAC,0BAA0B,IAAI,KAAK,CAAC;IAC1E,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,4CAA4C;IAC5C,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;QACrE,OAAO;QACP,YAAY;QACZ,cAAc;KACN,CAAC,CAAC;IACZ,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxE,UAAU,CACR,OAAO,EACP;YACE,SAAS;YACT,QAAQ;YACR,SAAS;YACT,SAAS;YACT,SAAS;YACT,sCAAsC,UAAU,CAAC,KAAK,IAAI;SAC3D,EACD,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAC1B;QACD,oEAAoE;QACpE,oEAAoE;QACpE,uEAAuE;QACvE,sBAAsB;QACtB,UAAU,CACR,OAAO,EACP;YACE,SAAS;YACT,QAAQ;YACR,SAAS;YACT,SAAS;YACT,SAAS;YACT,sCAAsC,UAAU,CAAC,YAAY,CAAC,IAAI;SACnE,EACD,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAC1B;QACD,uBAAuB;YACrB,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,OAAO,CACb,EAIE,CACH;KACN,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,+BAA+B,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,YAAY,GAChB,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,mEAAmE;IACnE,sEAAsE;IACtE,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,YAAY,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAChD,IAAI,CAAC,YAAY,IAAI,uBAAuB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,uEAAuE;QACvE,gEAAgE;QAChE,yCAAyC;QACzC,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC;QACtE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,mBAAmB,GACvB,EAAE,CAAC;YACL,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/C,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,YAAY,GAAG,2BAA2B,CACxC,mBAAmB,EACnB,eAAe,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CACxB,WAAW,CAAC,MAAM,EAClB,SAAS,EACT,KAAK,CAAC,IAAI,IAAI,EAAE,EAChB,KAAK,CAAC,aAAa,IAAI,CAAC,EACxB,KAAK,CAAC,WAAW,EACjB,YAAY,EACZ,YAAY,CACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analyzeHangs.js","sourceRoot":"","sources":["../../src/tools/analyzeHangs.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,7 @@ export function analyzeLeakTimelineFromXml(xml, tracePath, topN = 10) {
75
75
  };
76
76
  }
77
77
  const events = [];
78
+ let rowsSkippedNoClass = 0;
78
79
  for (const row of table.rows) {
79
80
  const startNs = pickNumber(row, ["time", "event-time", "start", "sample-time"]) ?? 0;
80
81
  const className = pickString(row, [
@@ -84,8 +85,10 @@ export function analyzeLeakTimelineFromXml(xml, tracePath, topN = 10) {
84
85
  "type-name",
85
86
  "leak-type",
86
87
  ]) ?? "";
87
- if (!className)
88
+ if (!className) {
89
+ rowsSkippedNoClass += 1;
88
90
  continue;
91
+ }
89
92
  const cumulativeCount = pickNumber(row, [
90
93
  "count",
91
94
  "cumulative-count",
@@ -141,6 +144,24 @@ export function analyzeLeakTimelineFromXml(xml, tracePath, topN = 10) {
141
144
  })
142
145
  .slice(0, topN);
143
146
  const lastEventNs = events.reduce((max, e) => Math.max(max, e.startNs), 0);
147
+ // v1.17 B-14: detect parser mismatch. If the schema had rows but every
148
+ // single row was skipped because no className column matched any of our
149
+ // candidate field names, surface that as `partial` status + diagnostic
150
+ // reason instead of letting it look like genuine absence.
151
+ const totalRowsInSchema = events.length + rowsSkippedNoClass;
152
+ const allRowsLackedClassName = totalRowsInSchema > 0 && events.length === 0;
153
+ const supportEntry = allRowsLackedClassName
154
+ ? {
155
+ kind: "leak-events",
156
+ status: "partial",
157
+ sourceSchemas: ["leaks"],
158
+ reason: `${rowsSkippedNoClass} rows in schema but none had a parseable className. Expected one of: class / class-name / type / type-name / leak-type. The xctrace schema may use a different column name on your iOS / Xcode version.`,
159
+ }
160
+ : {
161
+ kind: "leak-events",
162
+ status: "available",
163
+ sourceSchemas: ["leaks"],
164
+ };
144
165
  return {
145
166
  ok: true,
146
167
  tracePath,
@@ -150,15 +171,11 @@ export function analyzeLeakTimelineFromXml(xml, tracePath, topN = 10) {
150
171
  ...(lastEventNs > 0 ? { lastEventNs } : {}),
151
172
  },
152
173
  topClasses,
153
- diagnosis: buildDiagnosis(events.length, byClass.size, topClasses),
154
- status: "available",
155
- supportStatus: [
156
- {
157
- kind: "leak-events",
158
- status: "available",
159
- sourceSchemas: ["leaks"],
160
- },
161
- ],
174
+ diagnosis: allRowsLackedClassName
175
+ ? `${rowsSkippedNoClass} leak events in the schema but the className column was not in the expected set (class / class-name / type / type-name / leak-type). Likely a column-name drift on your iOS / Xcode version.`
176
+ : buildDiagnosis(events.length, byClass.size, topClasses),
177
+ status: allRowsLackedClassName ? "partial" : "available",
178
+ supportStatus: [supportEntry],
162
179
  };
163
180
  }
164
181
  function buildDiagnosis(rows, classes, topClasses) {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeLeakTimeline.js","sourceRoot":"","sources":["../../src/tools/analyzeLeakTimeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzeLeakTimeline.js","sourceRoot":"","sources":["../../src/tools/analyzeLeakTimeline.ts"],"names":[],"mappings":"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"}
@@ -69,8 +69,7 @@ export function analyzeMemoryFootprintFromXml(xml, tracePath, topN = 10) {
69
69
  // Match conservatively against the canonical name first, then any
70
70
  // schema whose name matches the SCHEMA_FAMILIES.memory patterns
71
71
  // already validated in schemaDiscovery.
72
- const table = tables.find((t) => t.schema === "memory-footprint" ||
73
- /memory-footprint/i.test(t.schema) ||
72
+ const table = tables.find((t) => /memory-footprint/i.test(t.schema) ||
74
73
  /resident-memory/i.test(t.schema));
75
74
  if (!table) {
76
75
  return {