@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.
- package/README.md +18 -14
- package/bin/.eslintrc.js +26 -0
- package/bin/memlab-cli.js +313 -0
- package/dist/artifact-classes.d.ts +86 -0
- package/dist/artifact-classes.d.ts.map +1 -0
- package/dist/artifact-classes.js +261 -0
- package/dist/artifact-classes.js.map +1 -0
- package/dist/capture-mode.d.ts +60 -0
- package/dist/capture-mode.d.ts.map +1 -0
- package/dist/capture-mode.js +39 -0
- package/dist/capture-mode.js.map +1 -0
- package/dist/guardrail.d.ts.map +1 -1
- package/dist/guardrail.js +13 -0
- package/dist/guardrail.js.map +1 -1
- package/dist/heap-state.d.ts +96 -2
- package/dist/heap-state.d.ts.map +1 -1
- package/dist/heap-state.js +197 -2
- package/dist/heap-state.js.map +1 -1
- package/dist/index.js +41 -1
- package/dist/index.js.map +1 -1
- package/dist/progress.d.ts +25 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +46 -0
- package/dist/progress.js.map +1 -0
- package/dist/result-handles.d.ts +11 -0
- package/dist/result-handles.d.ts.map +1 -0
- package/dist/result-handles.js +77 -0
- package/dist/result-handles.js.map +1 -0
- package/dist/string-index.d.ts +55 -0
- package/dist/string-index.d.ts.map +1 -0
- package/dist/string-index.js +91 -0
- package/dist/string-index.js.map +1 -0
- package/dist/tool-registry.d.ts +42 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +20 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/tools/analyze-run.d.ts +12 -0
- package/dist/tools/analyze-run.d.ts.map +1 -0
- package/dist/tools/analyze-run.js +343 -0
- package/dist/tools/analyze-run.js.map +1 -0
- package/dist/tools/app-heap.d.ts +12 -0
- package/dist/tools/app-heap.d.ts.map +1 -0
- package/dist/tools/app-heap.js +140 -0
- package/dist/tools/app-heap.js.map +1 -0
- package/dist/tools/auto-investigate.d.ts.map +1 -1
- package/dist/tools/auto-investigate.js +91 -49
- package/dist/tools/auto-investigate.js.map +1 -1
- package/dist/tools/batch.d.ts +12 -0
- package/dist/tools/batch.d.ts.map +1 -0
- package/dist/tools/batch.js +168 -0
- package/dist/tools/batch.js.map +1 -0
- package/dist/tools/cache-analysis.d.ts.map +1 -1
- package/dist/tools/cache-analysis.js +156 -5
- package/dist/tools/cache-analysis.js.map +1 -1
- package/dist/tools/class-histogram.d.ts.map +1 -1
- package/dist/tools/class-histogram.js +14 -3
- package/dist/tools/class-histogram.js.map +1 -1
- package/dist/tools/collection-trend.d.ts +55 -0
- package/dist/tools/collection-trend.d.ts.map +1 -0
- package/dist/tools/collection-trend.js +315 -0
- package/dist/tools/collection-trend.js.map +1 -0
- package/dist/tools/detached-dom.d.ts +2 -0
- package/dist/tools/detached-dom.d.ts.map +1 -1
- package/dist/tools/detached-dom.js +291 -20
- package/dist/tools/detached-dom.js.map +1 -1
- package/dist/tools/dev-artifacts.d.ts +62 -6
- package/dist/tools/dev-artifacts.d.ts.map +1 -1
- package/dist/tools/dev-artifacts.js +466 -23
- package/dist/tools/dev-artifacts.js.map +1 -1
- package/dist/tools/diff-snapshots.d.ts.map +1 -1
- package/dist/tools/diff-snapshots.js +101 -44
- package/dist/tools/diff-snapshots.js.map +1 -1
- package/dist/tools/dominator-attribution.d.ts +12 -0
- package/dist/tools/dominator-attribution.d.ts.map +1 -0
- package/dist/tools/dominator-attribution.js +189 -0
- package/dist/tools/dominator-attribution.js.map +1 -0
- package/dist/tools/dominator-chain.d.ts +12 -0
- package/dist/tools/dominator-chain.d.ts.map +1 -0
- package/dist/tools/dominator-chain.js +92 -0
- package/dist/tools/dominator-chain.js.map +1 -0
- package/dist/tools/duplicate-objects.d.ts +12 -0
- package/dist/tools/duplicate-objects.d.ts.map +1 -0
- package/dist/tools/duplicate-objects.js +172 -0
- package/dist/tools/duplicate-objects.js.map +1 -0
- package/dist/tools/duplicated-strings.d.ts.map +1 -1
- package/dist/tools/duplicated-strings.js +46 -38
- package/dist/tools/duplicated-strings.js.map +1 -1
- package/dist/tools/eval.d.ts +1 -0
- package/dist/tools/eval.d.ts.map +1 -1
- package/dist/tools/eval.js +787 -30
- package/dist/tools/eval.js.map +1 -1
- package/dist/tools/explain-delta.d.ts +12 -0
- package/dist/tools/explain-delta.d.ts.map +1 -0
- package/dist/tools/explain-delta.js +170 -0
- package/dist/tools/explain-delta.js.map +1 -0
- package/dist/tools/find-nodes-by-class.d.ts.map +1 -1
- package/dist/tools/find-nodes-by-class.js +112 -13
- package/dist/tools/find-nodes-by-class.js.map +1 -1
- package/dist/tools/finding-index.d.ts +22 -0
- package/dist/tools/finding-index.d.ts.map +1 -0
- package/dist/tools/finding-index.js +247 -0
- package/dist/tools/finding-index.js.map +1 -0
- package/dist/tools/for-each.d.ts.map +1 -1
- package/dist/tools/for-each.js +15 -3
- package/dist/tools/for-each.js.map +1 -1
- package/dist/tools/get-references.d.ts.map +1 -1
- package/dist/tools/get-references.js +35 -6
- package/dist/tools/get-references.js.map +1 -1
- package/dist/tools/get-referrers.d.ts.map +1 -1
- package/dist/tools/get-referrers.js +52 -6
- package/dist/tools/get-referrers.js.map +1 -1
- package/dist/tools/hunt-report.d.ts +12 -0
- package/dist/tools/hunt-report.d.ts.map +1 -0
- package/dist/tools/hunt-report.js +186 -0
- package/dist/tools/hunt-report.js.map +1 -0
- package/dist/tools/hypothesis.d.ts +12 -0
- package/dist/tools/hypothesis.d.ts.map +1 -0
- package/dist/tools/hypothesis.js +221 -0
- package/dist/tools/hypothesis.js.map +1 -0
- package/dist/tools/intern-opportunities.d.ts.map +1 -1
- package/dist/tools/intern-opportunities.js +721 -75
- package/dist/tools/intern-opportunities.js.map +1 -1
- package/dist/tools/ladder.d.ts +33 -0
- package/dist/tools/ladder.d.ts.map +1 -0
- package/dist/tools/ladder.js +266 -0
- package/dist/tools/ladder.js.map +1 -0
- package/dist/tools/largest-objects.d.ts.map +1 -1
- package/dist/tools/largest-objects.js +43 -16
- package/dist/tools/largest-objects.js.map +1 -1
- package/dist/tools/leak-report.d.ts +12 -0
- package/dist/tools/leak-report.d.ts.map +1 -0
- package/dist/tools/leak-report.js +256 -0
- package/dist/tools/leak-report.js.map +1 -0
- package/dist/tools/load-snapshot.d.ts +78 -0
- package/dist/tools/load-snapshot.d.ts.map +1 -1
- package/dist/tools/load-snapshot.js +519 -29
- package/dist/tools/load-snapshot.js.map +1 -1
- package/dist/tools/map-entries.d.ts +12 -0
- package/dist/tools/map-entries.d.ts.map +1 -0
- package/dist/tools/map-entries.js +139 -0
- package/dist/tools/map-entries.js.map +1 -0
- package/dist/tools/match-object.d.ts +12 -0
- package/dist/tools/match-object.d.ts.map +1 -0
- package/dist/tools/match-object.js +165 -0
- package/dist/tools/match-object.js.map +1 -0
- package/dist/tools/object-shape.d.ts.map +1 -1
- package/dist/tools/object-shape.js +92 -30
- package/dist/tools/object-shape.js.map +1 -1
- package/dist/tools/population-diff.d.ts +57 -0
- package/dist/tools/population-diff.d.ts.map +1 -0
- package/dist/tools/population-diff.js +338 -0
- package/dist/tools/population-diff.js.map +1 -0
- package/dist/tools/quick-diagnosis.d.ts.map +1 -1
- package/dist/tools/quick-diagnosis.js +12 -4
- package/dist/tools/quick-diagnosis.js.map +1 -1
- package/dist/tools/retainer-layers.d.ts +23 -0
- package/dist/tools/retainer-layers.d.ts.map +1 -0
- package/dist/tools/retainer-layers.js +179 -0
- package/dist/tools/retainer-layers.js.map +1 -0
- package/dist/tools/retainer-summary.d.ts +1 -0
- package/dist/tools/retainer-summary.d.ts.map +1 -1
- package/dist/tools/retainer-summary.js +128 -32
- package/dist/tools/retainer-summary.js.map +1 -1
- package/dist/tools/retainer-trace.d.ts.map +1 -1
- package/dist/tools/retainer-trace.js +105 -25
- package/dist/tools/retainer-trace.js.map +1 -1
- package/dist/tools/search-nodes.d.ts.map +1 -1
- package/dist/tools/search-nodes.js +5 -1
- package/dist/tools/search-nodes.js.map +1 -1
- package/dist/tools/search-strings.d.ts.map +1 -1
- package/dist/tools/search-strings.js +53 -7
- package/dist/tools/search-strings.js.map +1 -1
- package/dist/tools/sequence-analysis.d.ts +49 -0
- package/dist/tools/sequence-analysis.d.ts.map +1 -1
- package/dist/tools/sequence-analysis.js +268 -78
- package/dist/tools/sequence-analysis.js.map +1 -1
- package/dist/tools/shape-histogram.d.ts.map +1 -1
- package/dist/tools/shape-histogram.js +9 -2
- package/dist/tools/shape-histogram.js.map +1 -1
- package/dist/tools/sliced-strings.d.ts.map +1 -1
- package/dist/tools/sliced-strings.js +22 -4
- package/dist/tools/sliced-strings.js.map +1 -1
- package/dist/tools/snapshot-header.d.ts +28 -0
- package/dist/tools/snapshot-header.d.ts.map +1 -0
- package/dist/tools/snapshot-header.js +111 -0
- package/dist/tools/snapshot-header.js.map +1 -0
- package/dist/tools/string-patterns.d.ts.map +1 -1
- package/dist/tools/string-patterns.js +5 -4
- package/dist/tools/string-patterns.js.map +1 -1
- package/dist/tools/tools-index.d.ts +12 -0
- package/dist/tools/tools-index.d.ts.map +1 -0
- package/dist/tools/tools-index.js +342 -0
- package/dist/tools/tools-index.js.map +1 -0
- package/dist/tools/verify-fix.d.ts +23 -0
- package/dist/tools/verify-fix.d.ts.map +1 -0
- package/dist/tools/verify-fix.js +211 -0
- package/dist/tools/verify-fix.js.map +1 -0
- package/dist/tools/weakmap-entries.d.ts.map +1 -1
- package/dist/tools/weakmap-entries.js +6 -1
- package/dist/tools/weakmap-entries.js.map +1 -1
- package/dist/utils.d.ts +204 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +478 -8
- package/dist/utils.js.map +1 -1
- 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":"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"}
|
|
@@ -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,
|
|
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", "
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
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
|
-
},
|
|
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 =
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,
|
|
1
|
+
{"version":3,"file":"largest-objects.js","sourceRoot":"","sources":["../../src/tools/largest-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,SAAS,gBAAgB,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/D,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,oDAAoD;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IACE,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,UAAU,EACxB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,8iBAA8iB,EAC9iB;QACE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4NAA4N,CAC7N;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qIAAqI,CACtI;QACH,iBAAiB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CACP,mSAAmS,CACpS;KACJ,EACD,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAC,EAAE,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAE/B,MAAM,UAAU,GAAG,aAAa;gBAC9B,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC;YAET,wEAAwE;YACxE,oEAAoE;YACpE,sEAAsE;YACtE,MAAM,UAAU,GAAG,iBAAiB;gBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;gBAChD,CAAC,CAAC,KAAK,CAAC;YAEV,MAAM,UAAU,GAAG,oBAAoB,CACrC,QAAQ,EACR,CAAC,IAAe,EAAE,EAAE;gBAClB,gEAAgE;gBAChE,4DAA4D;gBAC5D,IACE,CAAC,qBAAqB,CAAC,IAAI,EAAE;oBAC3B,iBAAiB,EAAE,SAAS,IAAI,IAAI;iBACrC,CAAC;oBAEF,OAAO,KAAK,CAAC;gBACf,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBACvD,IAAI,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC,EACD,UAAU,CACX,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB;gBAC9B,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,CAAC;gBAC9C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;YAErE,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,WAAW;gBACX,eAAe;gBACf,SAAS;aACV,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAC,EAAE,EAAE;gBACjD,MAAM,SAAS,GACb,WAAW,GAAG,CAAC;oBACb,CAAC,CAAC,KAAK,WAAW,aAAa,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,oBAAoB;oBAC7E,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO;oBACL,IAAI,CAAC,CAAC,EAAE,EAAE;oBACV,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;oBACjD,CAAC,CAAC,IAAI;oBACN,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxB,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC3B,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC;YACrD,IAAI,aAAa;gBAAE,WAAW,CAAC,IAAI,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;YAClE,MAAM,UAAU,GACd,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,YAAY,GAChB,iBAAiB,IAAI,SAAS,GAAG,CAAC;gBAChC,CAAC,CAAC,gBAAgB,SAAS,wGAAwG;gBACnI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,UAAU,CACf,OAAO,IAAI,CAAC,MAAM,4BAA4B,UAAU,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,YAAY,EAAE,CACxH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -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"}
|