@memlab/mcp-server 2.3.0 → 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 (205) hide show
  1. package/README.md +18 -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 +96 -2
  16. package/dist/heap-state.d.ts.map +1 -1
  17. package/dist/heap-state.js +197 -2
  18. package/dist/heap-state.js.map +1 -1
  19. package/dist/index.js +41 -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/auto-investigate.d.ts.map +1 -1
  46. package/dist/tools/auto-investigate.js +91 -49
  47. package/dist/tools/auto-investigate.js.map +1 -1
  48. package/dist/tools/batch.d.ts +12 -0
  49. package/dist/tools/batch.d.ts.map +1 -0
  50. package/dist/tools/batch.js +168 -0
  51. package/dist/tools/batch.js.map +1 -0
  52. package/dist/tools/cache-analysis.d.ts.map +1 -1
  53. package/dist/tools/cache-analysis.js +156 -5
  54. package/dist/tools/cache-analysis.js.map +1 -1
  55. package/dist/tools/class-histogram.d.ts.map +1 -1
  56. package/dist/tools/class-histogram.js +14 -3
  57. package/dist/tools/class-histogram.js.map +1 -1
  58. package/dist/tools/collection-trend.d.ts +55 -0
  59. package/dist/tools/collection-trend.d.ts.map +1 -0
  60. package/dist/tools/collection-trend.js +315 -0
  61. package/dist/tools/collection-trend.js.map +1 -0
  62. package/dist/tools/detached-dom.d.ts +2 -0
  63. package/dist/tools/detached-dom.d.ts.map +1 -1
  64. package/dist/tools/detached-dom.js +291 -20
  65. package/dist/tools/detached-dom.js.map +1 -1
  66. package/dist/tools/dev-artifacts.d.ts +62 -6
  67. package/dist/tools/dev-artifacts.d.ts.map +1 -1
  68. package/dist/tools/dev-artifacts.js +466 -23
  69. package/dist/tools/dev-artifacts.js.map +1 -1
  70. package/dist/tools/diff-snapshots.d.ts.map +1 -1
  71. package/dist/tools/diff-snapshots.js +101 -44
  72. package/dist/tools/diff-snapshots.js.map +1 -1
  73. package/dist/tools/dominator-attribution.d.ts +12 -0
  74. package/dist/tools/dominator-attribution.d.ts.map +1 -0
  75. package/dist/tools/dominator-attribution.js +189 -0
  76. package/dist/tools/dominator-attribution.js.map +1 -0
  77. package/dist/tools/dominator-chain.d.ts +12 -0
  78. package/dist/tools/dominator-chain.d.ts.map +1 -0
  79. package/dist/tools/dominator-chain.js +92 -0
  80. package/dist/tools/dominator-chain.js.map +1 -0
  81. package/dist/tools/duplicate-objects.d.ts +12 -0
  82. package/dist/tools/duplicate-objects.d.ts.map +1 -0
  83. package/dist/tools/duplicate-objects.js +172 -0
  84. package/dist/tools/duplicate-objects.js.map +1 -0
  85. package/dist/tools/duplicated-strings.d.ts.map +1 -1
  86. package/dist/tools/duplicated-strings.js +46 -38
  87. package/dist/tools/duplicated-strings.js.map +1 -1
  88. package/dist/tools/eval.d.ts +1 -0
  89. package/dist/tools/eval.d.ts.map +1 -1
  90. package/dist/tools/eval.js +787 -30
  91. package/dist/tools/eval.js.map +1 -1
  92. package/dist/tools/explain-delta.d.ts +12 -0
  93. package/dist/tools/explain-delta.d.ts.map +1 -0
  94. package/dist/tools/explain-delta.js +170 -0
  95. package/dist/tools/explain-delta.js.map +1 -0
  96. package/dist/tools/find-nodes-by-class.d.ts.map +1 -1
  97. package/dist/tools/find-nodes-by-class.js +112 -13
  98. package/dist/tools/find-nodes-by-class.js.map +1 -1
  99. package/dist/tools/finding-index.d.ts +22 -0
  100. package/dist/tools/finding-index.d.ts.map +1 -0
  101. package/dist/tools/finding-index.js +247 -0
  102. package/dist/tools/finding-index.js.map +1 -0
  103. package/dist/tools/for-each.d.ts.map +1 -1
  104. package/dist/tools/for-each.js +15 -3
  105. package/dist/tools/for-each.js.map +1 -1
  106. package/dist/tools/get-references.d.ts.map +1 -1
  107. package/dist/tools/get-references.js +35 -6
  108. package/dist/tools/get-references.js.map +1 -1
  109. package/dist/tools/get-referrers.d.ts.map +1 -1
  110. package/dist/tools/get-referrers.js +52 -6
  111. package/dist/tools/get-referrers.js.map +1 -1
  112. package/dist/tools/hunt-report.d.ts +12 -0
  113. package/dist/tools/hunt-report.d.ts.map +1 -0
  114. package/dist/tools/hunt-report.js +186 -0
  115. package/dist/tools/hunt-report.js.map +1 -0
  116. package/dist/tools/hypothesis.d.ts +12 -0
  117. package/dist/tools/hypothesis.d.ts.map +1 -0
  118. package/dist/tools/hypothesis.js +221 -0
  119. package/dist/tools/hypothesis.js.map +1 -0
  120. package/dist/tools/intern-opportunities.d.ts.map +1 -1
  121. package/dist/tools/intern-opportunities.js +721 -75
  122. package/dist/tools/intern-opportunities.js.map +1 -1
  123. package/dist/tools/ladder.d.ts +33 -0
  124. package/dist/tools/ladder.d.ts.map +1 -0
  125. package/dist/tools/ladder.js +266 -0
  126. package/dist/tools/ladder.js.map +1 -0
  127. package/dist/tools/largest-objects.d.ts.map +1 -1
  128. package/dist/tools/largest-objects.js +43 -16
  129. package/dist/tools/largest-objects.js.map +1 -1
  130. package/dist/tools/leak-report.d.ts +12 -0
  131. package/dist/tools/leak-report.d.ts.map +1 -0
  132. package/dist/tools/leak-report.js +256 -0
  133. package/dist/tools/leak-report.js.map +1 -0
  134. package/dist/tools/load-snapshot.d.ts +78 -0
  135. package/dist/tools/load-snapshot.d.ts.map +1 -1
  136. package/dist/tools/load-snapshot.js +519 -29
  137. package/dist/tools/load-snapshot.js.map +1 -1
  138. package/dist/tools/map-entries.d.ts +12 -0
  139. package/dist/tools/map-entries.d.ts.map +1 -0
  140. package/dist/tools/map-entries.js +139 -0
  141. package/dist/tools/map-entries.js.map +1 -0
  142. package/dist/tools/match-object.d.ts +12 -0
  143. package/dist/tools/match-object.d.ts.map +1 -0
  144. package/dist/tools/match-object.js +165 -0
  145. package/dist/tools/match-object.js.map +1 -0
  146. package/dist/tools/object-shape.d.ts.map +1 -1
  147. package/dist/tools/object-shape.js +92 -30
  148. package/dist/tools/object-shape.js.map +1 -1
  149. package/dist/tools/population-diff.d.ts +57 -0
  150. package/dist/tools/population-diff.d.ts.map +1 -0
  151. package/dist/tools/population-diff.js +338 -0
  152. package/dist/tools/population-diff.js.map +1 -0
  153. package/dist/tools/quick-diagnosis.d.ts.map +1 -1
  154. package/dist/tools/quick-diagnosis.js +12 -4
  155. package/dist/tools/quick-diagnosis.js.map +1 -1
  156. package/dist/tools/retainer-layers.d.ts +23 -0
  157. package/dist/tools/retainer-layers.d.ts.map +1 -0
  158. package/dist/tools/retainer-layers.js +179 -0
  159. package/dist/tools/retainer-layers.js.map +1 -0
  160. package/dist/tools/retainer-summary.d.ts +1 -0
  161. package/dist/tools/retainer-summary.d.ts.map +1 -1
  162. package/dist/tools/retainer-summary.js +128 -32
  163. package/dist/tools/retainer-summary.js.map +1 -1
  164. package/dist/tools/retainer-trace.d.ts.map +1 -1
  165. package/dist/tools/retainer-trace.js +105 -25
  166. package/dist/tools/retainer-trace.js.map +1 -1
  167. package/dist/tools/search-nodes.d.ts.map +1 -1
  168. package/dist/tools/search-nodes.js +5 -1
  169. package/dist/tools/search-nodes.js.map +1 -1
  170. package/dist/tools/search-strings.d.ts.map +1 -1
  171. package/dist/tools/search-strings.js +53 -7
  172. package/dist/tools/search-strings.js.map +1 -1
  173. package/dist/tools/sequence-analysis.d.ts +49 -0
  174. package/dist/tools/sequence-analysis.d.ts.map +1 -1
  175. package/dist/tools/sequence-analysis.js +268 -78
  176. package/dist/tools/sequence-analysis.js.map +1 -1
  177. package/dist/tools/shape-histogram.d.ts.map +1 -1
  178. package/dist/tools/shape-histogram.js +9 -2
  179. package/dist/tools/shape-histogram.js.map +1 -1
  180. package/dist/tools/sliced-strings.d.ts.map +1 -1
  181. package/dist/tools/sliced-strings.js +22 -4
  182. package/dist/tools/sliced-strings.js.map +1 -1
  183. package/dist/tools/snapshot-header.d.ts +28 -0
  184. package/dist/tools/snapshot-header.d.ts.map +1 -0
  185. package/dist/tools/snapshot-header.js +111 -0
  186. package/dist/tools/snapshot-header.js.map +1 -0
  187. package/dist/tools/string-patterns.d.ts.map +1 -1
  188. package/dist/tools/string-patterns.js +5 -4
  189. package/dist/tools/string-patterns.js.map +1 -1
  190. package/dist/tools/tools-index.d.ts +12 -0
  191. package/dist/tools/tools-index.d.ts.map +1 -0
  192. package/dist/tools/tools-index.js +342 -0
  193. package/dist/tools/tools-index.js.map +1 -0
  194. package/dist/tools/verify-fix.d.ts +23 -0
  195. package/dist/tools/verify-fix.d.ts.map +1 -0
  196. package/dist/tools/verify-fix.js +211 -0
  197. package/dist/tools/verify-fix.js.map +1 -0
  198. package/dist/tools/weakmap-entries.d.ts.map +1 -1
  199. package/dist/tools/weakmap-entries.js +6 -1
  200. package/dist/tools/weakmap-entries.js.map +1 -1
  201. package/dist/utils.d.ts +204 -1
  202. package/dist/utils.d.ts.map +1 -1
  203. package/dist/utils.js +478 -8
  204. package/dist/utils.js.map +1 -1
  205. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"intern-opportunities.js","sourceRoot":"","sources":["../../src/tools/intern-opportunities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intern-opportunities.js","sourceRoot":"","sources":["../../src/tools/intern-opportunities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
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
+ interface Ladder {
12
+ name: string;
13
+ paths: string[];
14
+ app?: string;
15
+ interaction?: string;
16
+ cycles?: number;
17
+ build?: string;
18
+ notes?: string;
19
+ positive_control?: string;
20
+ created?: string;
21
+ }
22
+ /**
23
+ * Resolve a `ladder:<name>` reference to its paths, or return the input
24
+ * unchanged. Exported so every trend tool can accept a ladder name wherever it
25
+ * accepts a path list.
26
+ */
27
+ export declare function resolveLadderPaths(paths: string[]): {
28
+ paths: string[];
29
+ ladder: Ladder | null;
30
+ };
31
+ export declare function registerLadder(server: McpServer): void;
32
+ export {};
33
+ //# sourceMappingURL=ladder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.d.ts","sourceRoot":"","sources":["../../src/tools/ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAqDvE,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAYA;AAYD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwMtD"}
@@ -0,0 +1,266 @@
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 fs from 'fs';
11
+ import path from 'path';
12
+ import { z } from 'zod';
13
+ import { formatBytes, formatNumber, markdownTable, errorResult, toolResult, } from '../utils.js';
14
+ import { peekSnapshotCounts, resolveSnapshotPath } from './load-snapshot.js';
15
+ /**
16
+ * Named snapshot ladders, and the provenance of the captures in them.
17
+ *
18
+ * Three separate problems this solves, all of which showed up as the same
19
+ * symptom — the agent retyping a list of absolute paths into every call:
20
+ *
21
+ * - **§6.2 ladder abstraction.** A ladder is the unit of work for every trend
22
+ * tool (`sequence_analysis`, `leak_report`, `hypothesis`), but it had no
23
+ * representation, so each call carried six 90-character paths. Re-typing them
24
+ * is where rungs get dropped or misordered, and a misordered ladder produces
25
+ * a confident, wrong trend.
26
+ * - **§6.1 capture provenance.** A `.heapsnapshot` records the heap and nothing
27
+ * about how it was taken — which app, which build, how many interaction
28
+ * cycles, whether a GC preceded it. Weeks later that context is gone, and it
29
+ * is exactly what decides whether a delta means anything. Provenance is
30
+ * stored beside the ladder rather than in a sidecar per file, so it survives
31
+ * even when snapshots are moved or pruned.
32
+ * - **§6.3 positive controls.** A hunt that finds nothing is only meaningful if
33
+ * the pipeline could have found something. Recording the planted control with
34
+ * the ladder makes "did we detect it?" answerable later instead of relying on
35
+ * memory.
36
+ *
37
+ * Persisted as one JSON file so it survives a server restart — the case that
38
+ * motivated it, since a dropped MCP connection is what loses the paths.
39
+ */
40
+ function registryPath() {
41
+ // No /tmp fallback: on a shared host that is a predictable, often
42
+ // world-writable path, so ladders would collide across users and another
43
+ // process could overwrite the registry. Failing is better than a silently
44
+ // shared file.
45
+ const home = process.env.HOME;
46
+ if (!home) {
47
+ throw new Error('HOME is not set, so the ladder registry has no per-user location. ' +
48
+ 'Refusing to fall back to a shared /tmp path.');
49
+ }
50
+ return path.join(home, '.memlab-mcp', 'ladders.json');
51
+ }
52
+ function loadRegistry() {
53
+ // Resolved outside the try: a missing HOME must propagate here exactly as it
54
+ // does from saveRegistry. Swallowed into the catch below it would render as a
55
+ // valid, empty registry, which is indistinguishable from "no ladders yet".
56
+ const file = registryPath();
57
+ try {
58
+ if (!fs.existsSync(file))
59
+ return {};
60
+ const raw = fs.readFileSync(file, 'utf8');
61
+ const parsed = JSON.parse(raw);
62
+ if (parsed == null || typeof parsed !== 'object')
63
+ return {};
64
+ return parsed;
65
+ }
66
+ catch {
67
+ // A corrupt registry must not break analysis; it is a convenience index,
68
+ // not a source of truth about the heap.
69
+ return {};
70
+ }
71
+ }
72
+ function saveRegistry(reg) {
73
+ fs.mkdirSync(path.dirname(registryPath()), { recursive: true });
74
+ fs.writeFileSync(registryPath(), JSON.stringify(reg, null, 2));
75
+ }
76
+ /**
77
+ * Resolve a `ladder:<name>` reference to its paths, or return the input
78
+ * unchanged. Exported so every trend tool can accept a ladder name wherever it
79
+ * accepts a path list.
80
+ */
81
+ export function resolveLadderPaths(paths) {
82
+ if (paths.length !== 1 || !paths[0].startsWith('ladder:')) {
83
+ return { paths, ladder: null };
84
+ }
85
+ const name = paths[0].slice('ladder:'.length);
86
+ const ladder = loadRegistry()[name];
87
+ if (ladder == null) {
88
+ throw new Error(`No ladder named "${name}". List them with memlab_ladder({action: "list"}).`);
89
+ }
90
+ return { paths: ladder.paths, ladder };
91
+ }
92
+ function describe(l) {
93
+ const bits = [];
94
+ if (l.app)
95
+ bits.push(`app: ${l.app}`);
96
+ if (l.interaction)
97
+ bits.push(`interaction: ${l.interaction}`);
98
+ if (l.cycles != null)
99
+ bits.push(`cycles: ${formatNumber(l.cycles)}`);
100
+ if (l.build)
101
+ bits.push(`build: ${l.build}`);
102
+ if (l.created)
103
+ bits.push(`captured: ${l.created}`);
104
+ return bits;
105
+ }
106
+ export function registerLadder(server) {
107
+ server.tool('memlab_ladder', 'Name a snapshot ladder once and reference it as `ladder:<name>` from the trend tools (memlab_sequence_analysis, memlab_leak_report, memlab_hypothesis) instead of re-typing its paths on every call. ' +
108
+ 'Also records the capture PROVENANCE a .heapsnapshot cannot carry — app, interaction, cycles driven, build, and any planted positive control. That context is what decides whether a delta means anything, and it is gone within days if it lives only in the conversation. A ladder whose rungs are misordered produces a confident, wrong trend, which is the failure re-typing paths invites. ' +
109
+ 'Stored in ~/.memlab-mcp/ladders.json so it survives a server restart — the case that loses the paths in the first place.', {
110
+ action: z
111
+ .enum(['save', 'list', 'show', 'delete'])
112
+ .describe('"save" registers/overwrites a ladder, "list" shows all, "show" prints one with its rungs verified against disk, "delete" removes one.'),
113
+ name: z
114
+ .string()
115
+ .optional()
116
+ .describe('Ladder name (required for save/show/delete).'),
117
+ paths: z
118
+ .array(z.string())
119
+ .optional()
120
+ .describe('Ordered snapshot paths, OLDEST FIRST (required for save).'),
121
+ app: z.string().optional().describe('App the capture came from.'),
122
+ interaction: z
123
+ .string()
124
+ .optional()
125
+ .describe('What was driven between rungs (e.g. "open/close chat").'),
126
+ cycles: z
127
+ .number()
128
+ .optional()
129
+ .describe('Interaction cycles driven between the first and last rung.'),
130
+ build: z
131
+ .string()
132
+ .optional()
133
+ .describe('Build/revision identifier, if known.'),
134
+ positive_control: z
135
+ .string()
136
+ .optional()
137
+ .describe('A leak deliberately planted for this run, so "we found nothing" can later be distinguished from "the pipeline could not have found anything".'),
138
+ notes: z.string().optional().describe('Anything else worth recording.'),
139
+ captured_at: z
140
+ .string()
141
+ .optional()
142
+ .describe('Capture time (ISO date). Defaults to now on save.'),
143
+ }, async ({ action, name, paths, app, interaction, cycles, build, positive_control, notes, captured_at, }) => {
144
+ try {
145
+ const reg = loadRegistry();
146
+ if (action === 'list') {
147
+ const names = Object.keys(reg).sort();
148
+ if (names.length === 0) {
149
+ return toolResult('No ladders registered. Save one with memlab_ladder({action:"save", name, paths:[…]}), then pass `["ladder:<name>"]` as `paths` to memlab_sequence_analysis / memlab_leak_report / memlab_hypothesis.');
150
+ }
151
+ return toolResult([
152
+ `## Registered ladders (${names.length})`,
153
+ '',
154
+ markdownTable(['Name', 'Rungs', 'App', 'Interaction', 'Cycles', 'Control'], names.map(n => {
155
+ const l = reg[n];
156
+ return [
157
+ n,
158
+ formatNumber(l.paths.length),
159
+ l.app ?? '—',
160
+ l.interaction ?? '—',
161
+ l.cycles != null ? formatNumber(l.cycles) : '—',
162
+ l.positive_control ? 'yes' : '—',
163
+ ];
164
+ }), new Set([1, 4])),
165
+ '',
166
+ '_Use as `paths: ["ladder:<name>"]`._',
167
+ ].join('\n'));
168
+ }
169
+ if (name == null || name === '') {
170
+ return errorResult(`action "${action}" requires a name.`);
171
+ }
172
+ if (action === 'delete') {
173
+ if (reg[name] == null)
174
+ return errorResult(`No ladder named "${name}".`);
175
+ delete reg[name];
176
+ saveRegistry(reg);
177
+ return toolResult(`Deleted ladder "${name}".`);
178
+ }
179
+ if (action === 'save') {
180
+ if (paths == null || paths.length === 0) {
181
+ return errorResult('action "save" requires a non-empty paths array.');
182
+ }
183
+ const resolved = [];
184
+ const missing = [];
185
+ for (const p of paths) {
186
+ try {
187
+ const { localPath } = resolveSnapshotPath(p);
188
+ resolved.push(localPath);
189
+ if (!fs.existsSync(localPath))
190
+ missing.push(p);
191
+ }
192
+ catch {
193
+ resolved.push(p);
194
+ missing.push(p);
195
+ }
196
+ }
197
+ if (missing.length > 0) {
198
+ // Refuse rather than register a ladder that will fail later: the
199
+ // whole point is that the stored list is trustworthy.
200
+ return errorResult(`${missing.length} path(s) do not exist: ${missing.slice(0, 5).join(', ')}${missing.length > 5 ? ', …' : ''}. Nothing was saved.`);
201
+ }
202
+ reg[name] = {
203
+ name,
204
+ paths: resolved,
205
+ app,
206
+ interaction,
207
+ cycles,
208
+ build,
209
+ positive_control,
210
+ notes,
211
+ created: captured_at ?? new Date().toISOString().slice(0, 19),
212
+ };
213
+ saveRegistry(reg);
214
+ const meta = describe(reg[name]);
215
+ return toolResult([
216
+ `Saved ladder **${name}** with ${formatNumber(resolved.length)} rung(s).`,
217
+ meta.length > 0 ? meta.join(' · ') : '',
218
+ positive_control
219
+ ? `Positive control recorded: ${positive_control}`
220
+ : '_No positive control recorded — a hunt that finds nothing will not be interpretable._',
221
+ '',
222
+ `Use it: \`memlab_leak_report({paths: ["ladder:${name}"]})\`.`,
223
+ ]
224
+ .filter(Boolean)
225
+ .join('\n'));
226
+ }
227
+ // show
228
+ const l = reg[name];
229
+ if (l == null)
230
+ return errorResult(`No ladder named "${name}".`);
231
+ const rows = l.paths.map((p, i) => {
232
+ const exists = fs.existsSync(p);
233
+ const counts = exists ? peekSnapshotCounts(p) : null;
234
+ const size = exists ? fs.statSync(p).size : 0;
235
+ return [
236
+ String(i + 1),
237
+ p.length > 46 ? '…' + p.slice(-45) : p,
238
+ exists ? formatBytes(size) : 'MISSING',
239
+ counts ? formatNumber(counts.nodeCount) : '—',
240
+ ];
241
+ });
242
+ const missingCount = l.paths.filter(p => !fs.existsSync(p)).length;
243
+ const meta = describe(l);
244
+ return toolResult([
245
+ `## Ladder "${name}" — ${formatNumber(l.paths.length)} rung(s)`,
246
+ '',
247
+ meta.length > 0 ? meta.join(' · ') : '_No provenance recorded._',
248
+ l.positive_control
249
+ ? `**Positive control:** ${l.positive_control}`
250
+ : '',
251
+ l.notes ? `Notes: ${l.notes}` : '',
252
+ '',
253
+ markdownTable(['#', 'Path', 'Size', 'Nodes'], rows, new Set([2, 3])),
254
+ missingCount > 0
255
+ ? `\n⚠ **${formatNumber(missingCount)} rung(s) are missing from disk** — the ladder will fail until they are restored or it is re-saved.`
256
+ : '',
257
+ ]
258
+ .filter(Boolean)
259
+ .join('\n'));
260
+ }
261
+ catch (err) {
262
+ return errorResult(err);
263
+ }
264
+ });
265
+ }
266
+ //# sourceMappingURL=ladder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../../src/tools/ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,YAAY;IACnB,kEAAkE;IAClE,yEAAyE;IACzE,0EAA0E;IAC1E,eAAe;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,8CAA8C,CACjD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AACxD,CAAC;AAcD,SAAS,YAAY;IACnB,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC5D,OAAO,MAAgC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,wCAAwC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B;IAC/C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAe;IAIhD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,oDAAoD,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uMAAuM;QACrM,kYAAkY;QAClY,0HAA0H,EAC5H;QACE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aACxC,QAAQ,CACP,uIAAuI,CACxI;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,2DAA2D,CAAC;QACxE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;QACzE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+IAA+I,CAChJ;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACvE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;KACjE,EACD,KAAK,EAAE,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,GAAG,EACH,WAAW,EACX,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,KAAK,EACL,WAAW,GACZ,EAAE,EAAE;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;YAE3B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,UAAU,CACf,sMAAsM,CACvM,CAAC;gBACJ,CAAC;gBACD,OAAO,UAAU,CACf;oBACE,0BAA0B,KAAK,CAAC,MAAM,GAAG;oBACzC,EAAE;oBACF,aAAa,CACX,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,EAC5D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBACZ,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjB,OAAO;4BACL,CAAC;4BACD,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC5B,CAAC,CAAC,GAAG,IAAI,GAAG;4BACZ,CAAC,CAAC,WAAW,IAAI,GAAG;4BACpB,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;4BAC/C,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;yBACjC,CAAC;oBACJ,CAAC,CAAC,EACF,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChB;oBACD,EAAE;oBACF,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChC,OAAO,WAAW,CAAC,WAAW,MAAM,oBAAoB,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;oBACnB,OAAO,WAAW,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;gBACnD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,WAAW,CAChB,iDAAiD,CAClD,CAAC;gBACJ,CAAC;gBACD,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,EAAC,SAAS,EAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;wBAC3C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,iEAAiE;oBACjE,sDAAsD;oBACtD,OAAO,WAAW,CAChB,GAAG,OAAO,CAAC,MAAM,0BAA0B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAClI,CAAC;gBACJ,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,GAAG;oBACV,IAAI;oBACJ,KAAK,EAAE,QAAQ;oBACf,GAAG;oBACH,WAAW;oBACX,MAAM;oBACN,KAAK;oBACL,gBAAgB;oBAChB,KAAK;oBACL,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC9D,CAAC;gBACF,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,OAAO,UAAU,CACf;oBACE,kBAAkB,IAAI,WAAW,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW;oBACzE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvC,gBAAgB;wBACd,CAAC,CAAC,8BAA8B,gBAAgB,EAAE;wBAClD,CAAC,CAAC,uFAAuF;oBAC3F,EAAE;oBACF,iDAAiD,IAAI,SAAS;iBAC/D;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;YACJ,CAAC;YAED,OAAO;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,WAAW,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,OAAO;oBACL,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACb,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;iBAC9C,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,UAAU,CACf;gBACE,cAAc,IAAI,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;gBAC/D,EAAE;gBACF,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B;gBAChE,CAAC,CAAC,gBAAgB;oBAChB,CAAC,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,EAAE;oBAC/C,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClC,EAAE;gBACF,aAAa,CACX,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EACJ,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChB;gBACD,YAAY,GAAG,CAAC;oBACd,CAAC,CAAC,SAAS,YAAY,CAAC,YAAY,CAAC,oGAAoG;oBACzI,CAAC,CAAC,EAAE;aACP;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"largest-objects.d.ts","sourceRoot":"","sources":["../../src/tools/largest-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AA+CvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyE9D"}
1
+ {"version":3,"file":"largest-objects.d.ts","sourceRoot":"","sources":["../../src/tools/largest-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AA+CvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6G9D"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { z } from 'zod';
11
11
  import { getSnapshot } from '../heap-state.js';
12
- import { isNodeWorthInspecting, filterLargestObjects, truncateNodeName, formatBytes, markdownTable, errorResult, toolResult, } from '../utils.js';
12
+ import { isNodeWorthInspecting, filterLargestObjects, collapseDominatorSubtrees, truncateNodeName, formatBytes, markdownTable, errorResult, toolResult, } from '../utils.js';
13
13
  function sanitizeForTable(s) {
14
14
  return s.replace(/[\n\r\t]/g, ' ').replace(/\|/g, '¦');
15
15
  }
@@ -40,7 +40,7 @@ function getContentPreview(node) {
40
40
  return '';
41
41
  }
42
42
  export function registerLargestObjects(server) {
43
- server.tool('memlab_largest_objects', 'Find the top N objects by retained size in the loaded heap snapshot. Filters out internal/meta objects. Use node_type to filter to a specific type (e.g., "object", "closure") or exclude_types to remove noisy types (e.g., "string"). Shows a content preview for each node.', {
43
+ server.tool('memlab_largest_objects', 'Find the top N objects by retained size in the loaded heap snapshot. Filters out internal/meta objects. Use node_type to filter to a specific type (e.g., "object", "closure") or exclude_types to remove noisy types (e.g., "string"). Shows a content preview for each node. By default it collapses multiple views of the SAME dominator subtree (e.g. Client → Request → … → Map all at one retained size on a single in-flight request) into one representative row so the list is not dominated by ~20 duplicate rows; pass collapse_subtrees:false to see every node.', {
44
44
  limit: z
45
45
  .number()
46
46
  .optional()
@@ -49,26 +49,44 @@ export function registerLargestObjects(server) {
49
49
  node_type: z
50
50
  .string()
51
51
  .optional()
52
- .describe('Only include this node type (e.g., "object", "closure", "string", "regexp").'),
52
+ .describe('Only include this node type (e.g., "object", "closure", "string", "array", "native", "code"). Types that are filtered out of the default view (array/native/code/synthetic/hidden) ARE returned when requested explicitly.'),
53
53
  exclude_types: z
54
54
  .string()
55
55
  .optional()
56
56
  .describe('Comma-separated node types to exclude (e.g., "string,concatenated string"). Useful to filter out large strings dominating the list.'),
57
- }, async ({ limit, node_type, exclude_types }) => {
57
+ collapse_subtrees: z
58
+ .boolean()
59
+ .optional()
60
+ .default(true)
61
+ .describe('Collapse nodes that are different views of the same dominator subtree (same retained size + one dominates the other) into a single representative row, annotated with how many views were folded in (default true). Set false to see every node, including all internal nodes of one big subtree.'),
62
+ }, async ({ limit, node_type, exclude_types, collapse_subtrees }) => {
58
63
  try {
59
64
  const snapshot = getSnapshot();
60
65
  const excludeSet = exclude_types
61
66
  ? new Set(exclude_types.split(',').map(s => s.trim()))
62
67
  : null;
63
- const nodes = filterLargestObjects(snapshot, (node) => {
64
- if (!isNodeWorthInspecting(node))
68
+ // When collapsing, over-fetch candidates so a single big subtree's many
69
+ // same-retained-size views don't crowd out distinct subtrees before
70
+ // dedup. Bounded so the retained-size sort stays cheap on huge heaps.
71
+ const fetchLimit = collapse_subtrees
72
+ ? Math.min(Math.max(limit * 6, limit + 30), 300)
73
+ : limit;
74
+ const candidates = filterLargestObjects(snapshot, (node) => {
75
+ // An explicit node_type request overrides the default-view type
76
+ // filter, so normally-suppressed types are still reachable.
77
+ if (!isNodeWorthInspecting(node, {
78
+ allowBlockedTypes: node_type != null,
79
+ }))
65
80
  return false;
66
81
  if (node_type && node.type !== node_type)
67
82
  return false;
68
83
  if (excludeSet && excludeSet.has(node.type))
69
84
  return false;
70
85
  return true;
71
- }, limit);
86
+ }, fetchLimit);
87
+ const groups = collapse_subtrees
88
+ ? collapseDominatorSubtrees(candidates, limit)
89
+ : candidates.slice(0, limit).map(node => ({ node, mergedCount: 0 }));
72
90
  const headers = [
73
91
  'ID',
74
92
  'Name',
@@ -78,21 +96,30 @@ export function registerLargestObjects(server) {
78
96
  'Preview',
79
97
  ];
80
98
  const rightCols = new Set([3, 4]);
81
- const rows = nodes.map(n => [
82
- `@${n.id}`,
83
- truncateNodeName(n.name, n.type, n.self_size, 60),
84
- n.type,
85
- formatBytes(n.self_size),
86
- formatBytes(n.retainedSize),
87
- getContentPreview(n),
88
- ]);
99
+ const rows = groups.map(({ node: n, mergedCount }) => {
100
+ const mergeNote = mergedCount > 0
101
+ ? `(+${mergedCount} more view${mergedCount > 1 ? 's' : ''} of this subtree) `
102
+ : '';
103
+ return [
104
+ `@${n.id}`,
105
+ truncateNodeName(n.name, n.type, n.self_size, 60),
106
+ n.type,
107
+ formatBytes(n.self_size),
108
+ formatBytes(n.retainedSize),
109
+ mergeNote + getContentPreview(n),
110
+ ];
111
+ });
89
112
  const filterParts = [];
90
113
  if (node_type)
91
114
  filterParts.push(`type=${node_type}`);
92
115
  if (exclude_types)
93
116
  filterParts.push(`excluding ${exclude_types}`);
94
117
  const filterNote = filterParts.length > 0 ? ` (${filterParts.join(', ')})` : '';
95
- return toolResult(`Top ${rows.length} objects by retained size${filterNote}\n\n${markdownTable(headers, rows, rightCols)}`);
118
+ const collapsed = groups.reduce((s, g) => s + g.mergedCount, 0);
119
+ const collapseNote = collapse_subtrees && collapsed > 0
120
+ ? `\n_Collapsed ${collapsed} same-subtree view(s) into their representative rows; pass collapse_subtrees:false to see every node._`
121
+ : '';
122
+ return toolResult(`Top ${rows.length} objects by retained size${filterNote}\n\n${markdownTable(headers, rows, rightCols)}${collapseNote}`);
96
123
  }
97
124
  catch (err) {
98
125
  return errorResult(err);
@@ -1 +1 @@
1
- {"version":3,"file":"largest-objects.js","sourceRoot":"","sources":["../../src/tools/largest-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"largest-objects.js","sourceRoot":"","sources":["../../src/tools/largest-objects.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 registerLeakReport(server: McpServer): void;
12
+ //# sourceMappingURL=leak-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leak-report.d.ts","sourceRoot":"","sources":["../../src/tools/leak-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AA2EvE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmQ1D"}