@memlab/mcp-server 2.18.1 → 2.52.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 (186) hide show
  1. package/README.md +8 -14
  2. package/bin/.eslintrc.js +26 -0
  3. package/bin/memlab-cli.js +313 -0
  4. package/dist/artifact-classes.d.ts +86 -0
  5. package/dist/artifact-classes.d.ts.map +1 -0
  6. package/dist/artifact-classes.js +261 -0
  7. package/dist/artifact-classes.js.map +1 -0
  8. package/dist/capture-mode.d.ts +60 -0
  9. package/dist/capture-mode.d.ts.map +1 -0
  10. package/dist/capture-mode.js +39 -0
  11. package/dist/capture-mode.js.map +1 -0
  12. package/dist/guardrail.d.ts.map +1 -1
  13. package/dist/guardrail.js +13 -0
  14. package/dist/guardrail.js.map +1 -1
  15. package/dist/heap-state.d.ts +89 -2
  16. package/dist/heap-state.d.ts.map +1 -1
  17. package/dist/heap-state.js +186 -2
  18. package/dist/heap-state.js.map +1 -1
  19. package/dist/index.js +39 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/progress.d.ts +25 -0
  22. package/dist/progress.d.ts.map +1 -0
  23. package/dist/progress.js +46 -0
  24. package/dist/progress.js.map +1 -0
  25. package/dist/result-handles.d.ts +11 -0
  26. package/dist/result-handles.d.ts.map +1 -0
  27. package/dist/result-handles.js +77 -0
  28. package/dist/result-handles.js.map +1 -0
  29. package/dist/string-index.d.ts +55 -0
  30. package/dist/string-index.d.ts.map +1 -0
  31. package/dist/string-index.js +91 -0
  32. package/dist/string-index.js.map +1 -0
  33. package/dist/tool-registry.d.ts +42 -0
  34. package/dist/tool-registry.d.ts.map +1 -0
  35. package/dist/tool-registry.js +20 -0
  36. package/dist/tool-registry.js.map +1 -0
  37. package/dist/tools/analyze-run.d.ts +12 -0
  38. package/dist/tools/analyze-run.d.ts.map +1 -0
  39. package/dist/tools/analyze-run.js +343 -0
  40. package/dist/tools/analyze-run.js.map +1 -0
  41. package/dist/tools/app-heap.d.ts +12 -0
  42. package/dist/tools/app-heap.d.ts.map +1 -0
  43. package/dist/tools/app-heap.js +140 -0
  44. package/dist/tools/app-heap.js.map +1 -0
  45. package/dist/tools/batch.d.ts +12 -0
  46. package/dist/tools/batch.d.ts.map +1 -0
  47. package/dist/tools/batch.js +168 -0
  48. package/dist/tools/batch.js.map +1 -0
  49. package/dist/tools/cache-analysis.d.ts.map +1 -1
  50. package/dist/tools/cache-analysis.js +156 -5
  51. package/dist/tools/cache-analysis.js.map +1 -1
  52. package/dist/tools/class-histogram.d.ts.map +1 -1
  53. package/dist/tools/class-histogram.js +14 -3
  54. package/dist/tools/class-histogram.js.map +1 -1
  55. package/dist/tools/collection-trend.d.ts +55 -0
  56. package/dist/tools/collection-trend.d.ts.map +1 -0
  57. package/dist/tools/collection-trend.js +315 -0
  58. package/dist/tools/collection-trend.js.map +1 -0
  59. package/dist/tools/detached-dom.d.ts +2 -0
  60. package/dist/tools/detached-dom.d.ts.map +1 -1
  61. package/dist/tools/detached-dom.js +291 -20
  62. package/dist/tools/detached-dom.js.map +1 -1
  63. package/dist/tools/dev-artifacts.d.ts +62 -6
  64. package/dist/tools/dev-artifacts.d.ts.map +1 -1
  65. package/dist/tools/dev-artifacts.js +466 -23
  66. package/dist/tools/dev-artifacts.js.map +1 -1
  67. package/dist/tools/dominator-attribution.d.ts +12 -0
  68. package/dist/tools/dominator-attribution.d.ts.map +1 -0
  69. package/dist/tools/dominator-attribution.js +189 -0
  70. package/dist/tools/dominator-attribution.js.map +1 -0
  71. package/dist/tools/dominator-chain.d.ts +12 -0
  72. package/dist/tools/dominator-chain.d.ts.map +1 -0
  73. package/dist/tools/dominator-chain.js +92 -0
  74. package/dist/tools/dominator-chain.js.map +1 -0
  75. package/dist/tools/duplicate-objects.d.ts +12 -0
  76. package/dist/tools/duplicate-objects.d.ts.map +1 -0
  77. package/dist/tools/duplicate-objects.js +172 -0
  78. package/dist/tools/duplicate-objects.js.map +1 -0
  79. package/dist/tools/duplicated-strings.d.ts.map +1 -1
  80. package/dist/tools/duplicated-strings.js +46 -38
  81. package/dist/tools/duplicated-strings.js.map +1 -1
  82. package/dist/tools/eval.d.ts +1 -0
  83. package/dist/tools/eval.d.ts.map +1 -1
  84. package/dist/tools/eval.js +785 -28
  85. package/dist/tools/eval.js.map +1 -1
  86. package/dist/tools/explain-delta.d.ts +12 -0
  87. package/dist/tools/explain-delta.d.ts.map +1 -0
  88. package/dist/tools/explain-delta.js +170 -0
  89. package/dist/tools/explain-delta.js.map +1 -0
  90. package/dist/tools/find-nodes-by-class.d.ts.map +1 -1
  91. package/dist/tools/find-nodes-by-class.js +112 -13
  92. package/dist/tools/find-nodes-by-class.js.map +1 -1
  93. package/dist/tools/finding-index.d.ts +22 -0
  94. package/dist/tools/finding-index.d.ts.map +1 -0
  95. package/dist/tools/finding-index.js +247 -0
  96. package/dist/tools/finding-index.js.map +1 -0
  97. package/dist/tools/for-each.d.ts.map +1 -1
  98. package/dist/tools/for-each.js +15 -3
  99. package/dist/tools/for-each.js.map +1 -1
  100. package/dist/tools/get-referrers.d.ts.map +1 -1
  101. package/dist/tools/get-referrers.js +17 -0
  102. package/dist/tools/get-referrers.js.map +1 -1
  103. package/dist/tools/hunt-report.d.ts +12 -0
  104. package/dist/tools/hunt-report.d.ts.map +1 -0
  105. package/dist/tools/hunt-report.js +186 -0
  106. package/dist/tools/hunt-report.js.map +1 -0
  107. package/dist/tools/hypothesis.d.ts +12 -0
  108. package/dist/tools/hypothesis.d.ts.map +1 -0
  109. package/dist/tools/hypothesis.js +221 -0
  110. package/dist/tools/hypothesis.js.map +1 -0
  111. package/dist/tools/intern-opportunities.d.ts.map +1 -1
  112. package/dist/tools/intern-opportunities.js +112 -47
  113. package/dist/tools/intern-opportunities.js.map +1 -1
  114. package/dist/tools/ladder.d.ts +33 -0
  115. package/dist/tools/ladder.d.ts.map +1 -0
  116. package/dist/tools/ladder.js +266 -0
  117. package/dist/tools/ladder.js.map +1 -0
  118. package/dist/tools/largest-objects.d.ts.map +1 -1
  119. package/dist/tools/largest-objects.js +6 -2
  120. package/dist/tools/largest-objects.js.map +1 -1
  121. package/dist/tools/leak-report.d.ts +12 -0
  122. package/dist/tools/leak-report.d.ts.map +1 -0
  123. package/dist/tools/leak-report.js +256 -0
  124. package/dist/tools/leak-report.js.map +1 -0
  125. package/dist/tools/load-snapshot.d.ts +18 -0
  126. package/dist/tools/load-snapshot.d.ts.map +1 -1
  127. package/dist/tools/load-snapshot.js +211 -13
  128. package/dist/tools/load-snapshot.js.map +1 -1
  129. package/dist/tools/map-entries.d.ts +12 -0
  130. package/dist/tools/map-entries.d.ts.map +1 -0
  131. package/dist/tools/map-entries.js +139 -0
  132. package/dist/tools/map-entries.js.map +1 -0
  133. package/dist/tools/match-object.d.ts +12 -0
  134. package/dist/tools/match-object.d.ts.map +1 -0
  135. package/dist/tools/match-object.js +165 -0
  136. package/dist/tools/match-object.js.map +1 -0
  137. package/dist/tools/object-shape.d.ts.map +1 -1
  138. package/dist/tools/object-shape.js +53 -5
  139. package/dist/tools/object-shape.js.map +1 -1
  140. package/dist/tools/population-diff.d.ts +57 -0
  141. package/dist/tools/population-diff.d.ts.map +1 -0
  142. package/dist/tools/population-diff.js +338 -0
  143. package/dist/tools/population-diff.js.map +1 -0
  144. package/dist/tools/retainer-layers.d.ts +23 -0
  145. package/dist/tools/retainer-layers.d.ts.map +1 -0
  146. package/dist/tools/retainer-layers.js +179 -0
  147. package/dist/tools/retainer-layers.js.map +1 -0
  148. package/dist/tools/retainer-summary.d.ts +1 -0
  149. package/dist/tools/retainer-summary.d.ts.map +1 -1
  150. package/dist/tools/retainer-summary.js +128 -32
  151. package/dist/tools/retainer-summary.js.map +1 -1
  152. package/dist/tools/retainer-trace.d.ts.map +1 -1
  153. package/dist/tools/retainer-trace.js +4 -2
  154. package/dist/tools/retainer-trace.js.map +1 -1
  155. package/dist/tools/search-nodes.d.ts.map +1 -1
  156. package/dist/tools/search-nodes.js +5 -1
  157. package/dist/tools/search-nodes.js.map +1 -1
  158. package/dist/tools/search-strings.d.ts.map +1 -1
  159. package/dist/tools/search-strings.js +53 -7
  160. package/dist/tools/search-strings.js.map +1 -1
  161. package/dist/tools/sequence-analysis.d.ts +49 -0
  162. package/dist/tools/sequence-analysis.d.ts.map +1 -1
  163. package/dist/tools/sequence-analysis.js +266 -86
  164. package/dist/tools/sequence-analysis.js.map +1 -1
  165. package/dist/tools/shape-histogram.d.ts.map +1 -1
  166. package/dist/tools/shape-histogram.js +9 -2
  167. package/dist/tools/shape-histogram.js.map +1 -1
  168. package/dist/tools/string-patterns.d.ts.map +1 -1
  169. package/dist/tools/string-patterns.js +5 -4
  170. package/dist/tools/string-patterns.js.map +1 -1
  171. package/dist/tools/tools-index.d.ts +12 -0
  172. package/dist/tools/tools-index.d.ts.map +1 -0
  173. package/dist/tools/tools-index.js +342 -0
  174. package/dist/tools/tools-index.js.map +1 -0
  175. package/dist/tools/verify-fix.d.ts +23 -0
  176. package/dist/tools/verify-fix.d.ts.map +1 -0
  177. package/dist/tools/verify-fix.js +211 -0
  178. package/dist/tools/verify-fix.js.map +1 -0
  179. package/dist/tools/weakmap-entries.d.ts.map +1 -1
  180. package/dist/tools/weakmap-entries.js +6 -1
  181. package/dist/tools/weakmap-entries.js.map +1 -1
  182. package/dist/utils.d.ts +146 -1
  183. package/dist/utils.d.ts.map +1 -1
  184. package/dist/utils.js +335 -10
  185. package/dist/utils.js.map +1 -1
  186. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/tools/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/tools/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall memory_lab
9
+ */
10
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ export declare function registerExplainDelta(server: McpServer): void;
12
+ //# sourceMappingURL=explain-delta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-delta.d.ts","sourceRoot":"","sources":["../../src/tools/explain-delta.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAoEvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmK5D"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall memory_lab
9
+ */
10
+ import { z } from 'zod';
11
+ import { getSnapshotByHandle, getMetadataByHandle, getCurrentHandle, listSnapshots, } from '../heap-state.js';
12
+ import { formatBytes, formatNumber, markdownTable, errorResult, toolResult, } from '../utils.js';
13
+ import { classifyArtifact } from '../artifact-classes.js';
14
+ import { normalizeClassName } from './sequence-analysis.js';
15
+ /**
16
+ * Attribute every node's SELF size to its immediate dominator's class.
17
+ *
18
+ * Self size, not retained: retained sizes overlap wherever objects nest, so
19
+ * summing them per owner reports more memory than exists (a sum over one class
20
+ * in a 200 MB heap has been measured at 5.9 GB). Self sizes partition the heap
21
+ * exactly, which is what makes two snapshots comparable.
22
+ *
23
+ * Immediate dominator, not nearest app-owned ancestor: resolving an owner chain
24
+ * per node needs a memo table the size of the heap, and on a multi-million-node
25
+ * snapshot that is a large allocation to make while answering a question about
26
+ * memory. The immediate dominator is already the accountable parent for the
27
+ * bytes hanging off it, and it is one field read per node.
28
+ */
29
+ function attributeByOwner(snapshot) {
30
+ const byOwner = new Map();
31
+ let totalSelf = 0;
32
+ snapshot.nodes.forEach(node => {
33
+ if (node.id <= 3)
34
+ return;
35
+ totalSelf += node.self_size;
36
+ const dom = node.dominatorNode;
37
+ // Normalize the per-instance node id V8 appends to Context/scope names
38
+ // ("system / Context / scope @706909"). Those ids differ per capture, so
39
+ // without this every scope looks like an owner that appeared from nothing
40
+ // in the target and vanished from the baseline — pure phantom delta.
41
+ const key = dom == null || dom.id === node.id
42
+ ? '(GC roots)'
43
+ : dom.name.length > 0
44
+ ? normalizeClassName(dom.name)
45
+ : `(unnamed ${dom.type})`;
46
+ const e = byOwner.get(key);
47
+ if (e) {
48
+ e.selfBytes += node.self_size;
49
+ e.nodes++;
50
+ }
51
+ else {
52
+ byOwner.set(key, { selfBytes: node.self_size, nodes: 1 });
53
+ }
54
+ });
55
+ return { byOwner, totalSelf };
56
+ }
57
+ export function registerExplainDelta(server) {
58
+ server.tool('memlab_explain_delta', 'Explain WHERE a heap grew between two loaded snapshots, attributed by dominator (who owns the new bytes) rather than by class (what the new bytes are). ' +
59
+ '"Object grew by 99,418 instances" does not tell you what to fix; "the bytes hanging off CometStyleXSheet grew by 12 MB" does. Every node\'s SELF size is attributed to its immediate dominator\'s class and the two attributions are differenced, so the numbers partition the heap and add up — unlike a per-class sum of retained sizes, which double-counts nested objects and can exceed the heap. ' +
60
+ 'Known measurement-artifact owners (JIT warmup, CDP inspector, a11y caches, captured Error stacks) are flagged so an inspector-driven delta is not read as an application regression. Both snapshots must be resident: load them with keep_previous:true.', {
61
+ baseline_handle: z
62
+ .string()
63
+ .describe('Handle of the earlier snapshot (memlab_snapshots lists them).'),
64
+ target_handle: z
65
+ .string()
66
+ .optional()
67
+ .describe('Handle of the later snapshot. Defaults to the current snapshot.'),
68
+ limit: z
69
+ .number()
70
+ .optional()
71
+ .default(20)
72
+ .describe('Maximum owners to report per direction (default 20).'),
73
+ min_delta_bytes: z
74
+ .number()
75
+ .optional()
76
+ .default(65536)
77
+ .describe('Ignore owners whose attributed size moved by less than this (default 64 KB).'),
78
+ include_artifacts: z
79
+ .boolean()
80
+ .optional()
81
+ .default(false)
82
+ .describe('Include owners that are known measurement artifacts (default false: counted in a one-line summary instead).'),
83
+ }, async ({ baseline_handle, target_handle, limit, min_delta_bytes, include_artifacts, }) => {
84
+ try {
85
+ const targetHandle = target_handle ?? getCurrentHandle();
86
+ if (targetHandle == null) {
87
+ return errorResult('No current snapshot; pass target_handle.');
88
+ }
89
+ if (targetHandle === baseline_handle) {
90
+ return errorResult('baseline_handle and target_handle are the same snapshot.');
91
+ }
92
+ const baseline = getSnapshotByHandle(baseline_handle);
93
+ const target = getSnapshotByHandle(targetHandle);
94
+ if (baseline == null || target == null) {
95
+ const available = listSnapshots()
96
+ .map(m => m.handle)
97
+ .join(', ');
98
+ return errorResult(`Both snapshots must be resident. Missing: ${baseline == null ? baseline_handle : targetHandle}. Resident: ${available || '(none)'}. Load with memlab_load_snapshot({file_path, keep_previous: true}).`);
99
+ }
100
+ for (const h of [baseline_handle, targetHandle]) {
101
+ if (getMetadataByHandle(h)?.light) {
102
+ return errorResult(`Snapshot "${h}" was loaded in LIGHT mode and has no dominator tree, which this attribution requires. Reload it without light.`);
103
+ }
104
+ }
105
+ const a = attributeByOwner(baseline);
106
+ const b = attributeByOwner(target);
107
+ const rows = [];
108
+ const owners = new Set([...a.byOwner.keys(), ...b.byOwner.keys()]);
109
+ for (const owner of owners) {
110
+ const before = a.byOwner.get(owner);
111
+ const after = b.byOwner.get(owner);
112
+ const delta = (after?.selfBytes ?? 0) - (before?.selfBytes ?? 0);
113
+ if (Math.abs(delta) < min_delta_bytes)
114
+ continue;
115
+ rows.push({
116
+ owner,
117
+ delta,
118
+ before: before?.selfBytes ?? 0,
119
+ after: after?.selfBytes ?? 0,
120
+ nodesDelta: (after?.nodes ?? 0) - (before?.nodes ?? 0),
121
+ artifact: classifyArtifact(owner) != null,
122
+ });
123
+ }
124
+ const totalDelta = b.totalSelf - a.totalSelf;
125
+ const lines = [
126
+ `## Heap delta by owner: "${baseline_handle}" → "${targetHandle}"`,
127
+ '',
128
+ `Total self size ${totalDelta >= 0 ? 'grew' : 'shrank'} by **${formatBytes(Math.abs(totalDelta))}** (${formatBytes(a.totalSelf)} → ${formatBytes(b.totalSelf)}).`,
129
+ '',
130
+ ];
131
+ const artifactRows = rows.filter(r => r.artifact);
132
+ const usable = include_artifacts ? rows : rows.filter(r => !r.artifact);
133
+ const grew = usable
134
+ .filter(r => r.delta > 0)
135
+ .sort((x, y) => y.delta - x.delta)
136
+ .slice(0, limit);
137
+ const shrank = usable
138
+ .filter(r => r.delta < 0)
139
+ .sort((x, y) => x.delta - y.delta)
140
+ .slice(0, limit);
141
+ if (grew.length === 0 && shrank.length === 0) {
142
+ lines.push(`No owner moved by at least ${formatBytes(min_delta_bytes)}. The change is spread thinly rather than concentrated under one owner — lower \`min_delta_bytes\`, or compare class counts with \`memlab_diff_snapshots\`.`);
143
+ return toolResult(lines.join('\n'));
144
+ }
145
+ const render = (rs) => markdownTable(['Owner (dominator class)', 'Δ self', 'Before', 'After', 'Δ nodes'], rs.map(r => [
146
+ r.owner.length > 44 ? r.owner.slice(0, 41) + '…' : r.owner,
147
+ `${r.delta >= 0 ? '+' : '−'}${formatBytes(Math.abs(r.delta))}`,
148
+ formatBytes(r.before),
149
+ formatBytes(r.after),
150
+ `${r.nodesDelta >= 0 ? '+' : '−'}${formatNumber(Math.abs(r.nodesDelta))}`,
151
+ ]), new Set([1, 2, 3, 4]));
152
+ if (grew.length > 0) {
153
+ lines.push('### Owners that grew', '', render(grew), '');
154
+ }
155
+ if (shrank.length > 0) {
156
+ lines.push('### Owners that shrank', '', render(shrank), '');
157
+ }
158
+ if (!include_artifacts && artifactRows.length > 0) {
159
+ const bytes = artifactRows.reduce((s, r) => s + r.delta, 0);
160
+ lines.push(`> 🧹 **${formatNumber(artifactRows.length)} owner(s) suppressed as known measurement artifacts** (net ${bytes >= 0 ? '+' : '−'}${formatBytes(Math.abs(bytes))}) — JIT warmup, CDP inspector retention, a11y caches, captured Error stacks. Pass \`include_artifacts: true\` to see them.`, '> Note the split of responsibilities: the JIT-warmup families counted here (`system/Code`, `InstructionStream`, `BytecodeArray`, `ProtectedFixedArray`) are NOT counted by `memlab_dev_artifacts`, which measures retention by a dev root instead. Neither total is the whole artifact bill on its own — read both before deciding how much of a round is real.', '');
161
+ }
162
+ lines.push('_Attribution is by IMMEDIATE dominator and uses SELF size, so the rows partition the heap and sum to the total above. An owner growing does not prove a leak — a cache filling legitimately looks identical here; use `memlab_dominator_chain` on an instance to find the accountable application object, and a ladder (`memlab_leak_report`) to tell filling from unbounded growth._');
163
+ return toolResult(lines.join('\n'));
164
+ }
165
+ catch (err) {
166
+ return errorResult(err);
167
+ }
168
+ });
169
+ }
170
+ //# sourceMappingURL=explain-delta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-delta.js","sourceRoot":"","sources":["../../src/tools/explain-delta.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"find-nodes-by-class.d.ts","sourceRoot":"","sources":["../../src/tools/find-nodes-by-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAgBvE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwFhE"}
1
+ {"version":3,"file":"find-nodes-by-class.d.ts","sourceRoot":"","sources":["../../src/tools/find-nodes-by-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAiBvE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2MhE"}
@@ -11,26 +11,94 @@ import memlabCore from '@memlab/core';
11
11
  const { utils, NumericSet } = memlabCore;
12
12
  import { z } from 'zod';
13
13
  import { getSnapshot } from '../heap-state.js';
14
- import { filterLargestObjects, serializeNodeSummary, formatNodeSummaryTable, formatNumber, formatBytes, errorResult, toolResult, } from '../utils.js';
14
+ import { filterLargestObjects, serializeNodeSummary, formatNodeSummaryTable, formatNumber, formatBytes, errorResult, toolResult, makeNamePatternTest, } from '../utils.js';
15
15
  export function registerFindNodesByClass(server) {
16
- server.tool('memlab_find_nodes_by_class', 'Find heap objects by constructor/class name. Returns matching objects sorted by retained size. Follow up with memlab_retainer_trace on a result node to see why it is retained, memlab_get_references to inspect its properties, or memlab_retainer_summary to find common retainer patterns across all instances.', {
16
+ server.tool('memlab_find_nodes_by_class', 'Find heap nodes by constructor/class name, exactly (class_name) or by case-insensitive regex/substring (name_pattern). Matches ANY node type by default (object, closure, array, string, native, …) — pass node_type to narrow. Ordering is controlled by order: the biggest by retained size (default), or the newest by node id. If the exact name matches nothing, reports near-miss names and the types they exist under instead of a bare "not found". Follow up with memlab_retainer_trace on a result node to see why it is retained, memlab_get_references to inspect its properties, or memlab_retainer_summary to find common retainer patterns across all instances.', {
17
17
  class_name: z
18
18
  .string()
19
- .describe('The constructor or class name to search for'),
19
+ .optional()
20
+ .describe('The exact constructor or class name to search for. Either this or name_pattern is required.'),
21
+ name_pattern: z
22
+ .string()
23
+ .optional()
24
+ .describe('Match class names by pattern instead of exactly — a case-insensitive regular expression, or a plain substring when the pattern is not valid regex (e.g. "blink::UndoStep", "^WAWeb", "Collection$"). Use when the exact name is unknown, or to sweep a family in one call. Combined with class_name, both must match.'),
25
+ order: z
26
+ .enum(['retained_size', 'newest'])
27
+ .optional()
28
+ .default('retained_size')
29
+ .describe('How to pick which instances to show. "retained_size" (default) shows the biggest. "newest" shows the highest node ids — V8 assigns ids in allocation order, so within one snapshot this approximates the most recently allocated instances. When a class has grown from N to 10N across a ladder, the accumulating tail is what you want to inspect, and the biggest instances are usually the oldest — not the ones that are piling up. Approximate: ids are an allocation-order proxy, not a timestamp.'),
30
+ node_type: z
31
+ .string()
32
+ .optional()
33
+ .describe('Restrict to a single heap node type (e.g. "object", "closure", "array", "string", "native"). Omit to match every type — which is the default because class names surfaced by other tools (memlab_sequence_analysis reports "type::name") are frequently closures or arrays, not objects.'),
20
34
  output_mode: z
21
35
  .enum(['full', 'count', 'ids'])
22
36
  .optional()
23
37
  .default('full')
24
- .describe('Output verbosity: "full" returns node summaries sorted by retained size (default), "count" returns only total count and aggregate retained size, "ids" returns only node IDs sorted by retained size'),
38
+ .describe('Output verbosity: "full" returns node summaries (default), "count" returns only total count and aggregate retained size, "ids" returns only node IDs. "full" and "ids" are both ordered by the "order" parameter, not always by retained size.'),
25
39
  limit: z
26
40
  .number()
41
+ .int()
42
+ .min(1)
27
43
  .optional()
28
44
  .default(20)
29
45
  .describe('Maximum number of results (default 20)'),
30
- }, async ({ class_name, output_mode, limit }) => {
46
+ }, async ({ class_name, name_pattern, node_type, output_mode, limit, order, }) => {
31
47
  try {
48
+ if (class_name == null && name_pattern == null) {
49
+ return errorResult('Pass class_name (exact) or name_pattern (regex/substring); one of the two is required.');
50
+ }
32
51
  const snapshot = getSnapshot();
33
- const classFilter = (node) => node.name === class_name && node.type === 'object';
52
+ const nameMatches = makeNamePatternTest(name_pattern);
53
+ const label = class_name ?? `/${name_pattern}/`;
54
+ // Historically this hard-filtered `type === 'object'`, so closures,
55
+ // arrays, strings and natives were invisible: a class reported as a top
56
+ // grower by memlab_sequence_analysis (which groups by `type::name`)
57
+ // could return "No objects found" here, e.g. the closure `setValues_$0`.
58
+ // Default to every type and let the caller narrow explicitly.
59
+ const classFilter = (node) => (class_name == null || node.name === class_name) &&
60
+ nameMatches(node.name) &&
61
+ (node_type == null || node.type === node_type);
62
+ // Zero exact matches is usually a type filter or a near-miss name, not
63
+ // an empty heap — say which, so the caller does not conclude the class
64
+ // is absent.
65
+ const notFound = () => {
66
+ // The near-miss report keys on an exact name; with only a pattern
67
+ // there is no "similar name" to suggest — say what was searched
68
+ // instead of pretending to have a suggestion.
69
+ if (class_name == null) {
70
+ return `No nodes whose class name matches ${label}${node_type ? ` with node_type="${node_type}"` : ''}. The pattern is a case-insensitive regex (falling back to substring) — widen it, or drop node_type.`;
71
+ }
72
+ const byType = new Map();
73
+ const similar = new Map();
74
+ const needle = class_name.toLowerCase();
75
+ snapshot.nodes.forEach(node => {
76
+ if (node.name === class_name) {
77
+ byType.set(node.type, (byType.get(node.type) ?? 0) + 1);
78
+ }
79
+ else if (node.name.length < 120 &&
80
+ node.name.toLowerCase().includes(needle)) {
81
+ const k = `${node.name} (${node.type})`;
82
+ similar.set(k, (similar.get(k) ?? 0) + 1);
83
+ }
84
+ });
85
+ if (byType.size > 0) {
86
+ const got = [...byType.entries()]
87
+ .sort((a, b) => b[1] - a[1])
88
+ .map(([t, n]) => `${t} (${formatNumber(n)})`)
89
+ .join(', ');
90
+ return `No nodes named "${class_name}" with node_type="${node_type ?? 'any'}". It DOES exist under: ${got}. Re-run without node_type, or with the matching one.`;
91
+ }
92
+ if (similar.size > 0) {
93
+ const top = [...similar.entries()]
94
+ .sort((a, b) => b[1] - a[1])
95
+ .slice(0, 8)
96
+ .map(([k, n]) => `${k} ×${formatNumber(n)}`)
97
+ .join(', ');
98
+ return `No nodes named exactly "${class_name}". Similar names present: ${top}`;
99
+ }
100
+ return `No nodes found with class "${class_name}" (no similar names either — check the snapshot is the one you expect).`;
101
+ };
34
102
  if (output_mode === 'count') {
35
103
  let totalCount = 0;
36
104
  let totalSelf = 0;
@@ -43,15 +111,46 @@ export function registerFindNodesByClass(server) {
43
111
  nodeIds.add(node.id);
44
112
  });
45
113
  if (totalCount === 0) {
46
- return toolResult(`No objects found with class "${class_name}"`);
114
+ return toolResult(notFound());
47
115
  }
48
116
  // Dominator-aware aggregate: instances of a class often nest on the
49
117
  // dominator tree (e.g. a Foo retaining another Foo), so a raw sum of
50
118
  // retainedSize would double-count and can exceed 100% of heap.
51
119
  const totalRetained = utils.aggregateDominatorMetrics(nodeIds, snapshot, () => true, (node) => node.retainedSize);
52
- return toolResult(`"${class_name}": ${formatNumber(totalCount)} instances, ${formatBytes(totalSelf)} total self size, ${formatBytes(totalRetained)} aggregate retained size (dominator-deduplicated)`);
120
+ return toolResult(`"${label}": ${formatNumber(totalCount)} instances, ${formatBytes(totalSelf)} total self size, ${formatBytes(totalRetained)} aggregate retained size (dominator-deduplicated)`);
121
+ }
122
+ let nodes;
123
+ if (order === 'newest') {
124
+ // Highest node ids = latest allocated within this snapshot. Keep a
125
+ // bounded top-N rather than collecting every match and sorting, so a
126
+ // class with a million instances does not materialize a huge array.
127
+ // Relies on the schema's integer `limit >= 1`: a fractional limit
128
+ // never satisfies `length === limit`, and `limit <= 0` would fall
129
+ // through to the eviction branch and keep one node anyway.
130
+ const newest = [];
131
+ let minKept = -1;
132
+ snapshot.nodes.forEach(node => {
133
+ if (!classFilter(node))
134
+ return;
135
+ if (newest.length < limit) {
136
+ newest.push(node);
137
+ if (newest.length === limit) {
138
+ newest.sort((a, b) => a.id - b.id);
139
+ minKept = newest[0].id;
140
+ }
141
+ return;
142
+ }
143
+ if (node.id <= minKept)
144
+ return;
145
+ newest[0] = node;
146
+ newest.sort((a, b) => a.id - b.id);
147
+ minKept = newest[0].id;
148
+ });
149
+ nodes = newest.sort((a, b) => b.id - a.id);
150
+ }
151
+ else {
152
+ nodes = filterLargestObjects(snapshot, classFilter, limit);
53
153
  }
54
- const nodes = filterLargestObjects(snapshot, classFilter, limit);
55
154
  let totalCount = 0;
56
155
  if (nodes.length === limit) {
57
156
  snapshot.nodes.forEach(node => {
@@ -63,16 +162,16 @@ export function registerFindNodesByClass(server) {
63
162
  totalCount = nodes.length;
64
163
  }
65
164
  if (nodes.length === 0) {
66
- return toolResult(`No objects found with class "${class_name}"`);
165
+ return toolResult(notFound());
67
166
  }
68
167
  if (output_mode === 'ids') {
69
- return toolResult(`"${class_name}": ${formatNumber(totalCount)} total instances (showing ${nodes.length} IDs by retained size)\n\nIDs: ${nodes.map(n => n.id).join(', ')}`);
168
+ return toolResult(`"${label}": ${formatNumber(totalCount)} total instances (showing ${nodes.length} IDs by ${order === 'newest' ? 'node id — newest first' : 'retained size'})\n\nIDs: ${nodes.map(n => n.id).join(', ')}`);
70
169
  }
71
170
  const summaries = nodes.map(serializeNodeSummary);
72
171
  const countNote = totalCount > nodes.length
73
- ? ` (${formatNumber(totalCount)} total, showing top ${nodes.length})`
172
+ ? ` (${formatNumber(totalCount)} total, showing ${order === 'newest' ? `the ${nodes.length} newest by node id` : `top ${nodes.length} by retained size`})`
74
173
  : '';
75
- return toolResult(`Found ${formatNumber(totalCount)} "${class_name}" objects${countNote}\n\n${formatNodeSummaryTable(summaries)}`);
174
+ return toolResult(`Found ${formatNumber(totalCount)} "${label}" objects${countNote}\n\n${formatNodeSummaryTable(summaries)}`);
76
175
  }
77
176
  catch (err) {
78
177
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"find-nodes-by-class.js","sourceRoot":"","sources":["../../src/tools/find-nodes-by-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,MAAM,EAAC,KAAK,EAAE,UAAU,EAAC,GAAG,UAAU,CAAC;AACvC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,oTAAoT,EACpT;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aAC9B,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,sMAAsM,CACvM;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,wCAAwC,CAAC;KACtD,EACD,KAAK,EAAE,EAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAC,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,CAAC,IAAe,EAAE,EAAE,CACtC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YAErD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;wBAAE,OAAO;oBAC/B,UAAU,EAAE,CAAC;oBACb,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,UAAU,CAAC,gCAAgC,UAAU,GAAG,CAAC,CAAC;gBACnE,CAAC;gBACD,oEAAoE;gBACpE,qEAAqE;gBACrE,+DAA+D;gBAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,yBAAyB,CACnD,OAAO,EACP,QAAQ,EACR,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CACvC,CAAC;gBACF,OAAO,UAAU,CACf,IAAI,UAAU,MAAM,YAAY,CAAC,UAAU,CAAC,eAAe,WAAW,CAAC,SAAS,CAAC,qBAAqB,WAAW,CAAC,aAAa,CAAC,mDAAmD,CACpL,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAEjE,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC5B,IAAI,WAAW,CAAC,IAAI,CAAC;wBAAE,UAAU,EAAE,CAAC;gBACtC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,UAAU,CAAC,gCAAgC,UAAU,GAAG,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC1B,OAAO,UAAU,CACf,IAAI,UAAU,MAAM,YAAY,CAAC,UAAU,CAAC,6BAA6B,KAAK,CAAC,MAAM,kCAAkC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzJ,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClD,MAAM,SAAS,GACb,UAAU,GAAG,KAAK,CAAC,MAAM;gBACvB,CAAC,CAAC,KAAK,YAAY,CAAC,UAAU,CAAC,uBAAuB,KAAK,CAAC,MAAM,GAAG;gBACrE,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,UAAU,CACf,SAAS,YAAY,CAAC,UAAU,CAAC,KAAK,UAAU,YAAY,SAAS,OAAO,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAChH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"find-nodes-by-class.js","sourceRoot":"","sources":["../../src/tools/find-nodes-by-class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall memory_lab
9
+ */
10
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ /**
12
+ * Normalize a retainer path into a signature that is stable across captures.
13
+ *
14
+ * Strips exactly the things that differ per capture and nothing else:
15
+ * - `@12345` node ids, including the ` @…`-suffixed Context/scope names;
16
+ * - numeric array indices (`[47]`, `.47`), which depend on insertion order;
17
+ * - hex/long digit runs inside names (ids embedded in keys, e.g. a chat id).
18
+ */
19
+ export declare function normalizeRetainerPath(raw: string): string;
20
+ export declare function fingerprintOf(signature: string, classes: string[]): string;
21
+ export declare function registerFindingIndex(server: McpServer): void;
22
+ //# sourceMappingURL=finding-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-index.d.ts","sourceRoot":"","sources":["../../src/tools/finding-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AA4FvE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAG1E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+L5D"}