@memlab/mcp-server 2.1.0 → 2.3.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 +88 -3
- package/dist/analysis-budget.d.ts +71 -0
- package/dist/analysis-budget.d.ts.map +1 -0
- package/dist/analysis-budget.js +118 -0
- package/dist/analysis-budget.js.map +1 -0
- package/dist/guardrail.d.ts +24 -0
- package/dist/guardrail.d.ts.map +1 -0
- package/dist/guardrail.js +65 -0
- package/dist/guardrail.js.map +1 -0
- package/dist/heap-state.d.ts +46 -1
- package/dist/heap-state.d.ts.map +1 -1
- package/dist/heap-state.js +142 -10
- package/dist/heap-state.js.map +1 -1
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/array-group-by.d.ts +12 -0
- package/dist/tools/array-group-by.d.ts.map +1 -0
- package/dist/tools/array-group-by.js +191 -0
- package/dist/tools/array-group-by.js.map +1 -0
- package/dist/tools/auto-investigate.d.ts.map +1 -1
- package/dist/tools/auto-investigate.js +999 -37
- package/dist/tools/auto-investigate.js.map +1 -1
- package/dist/tools/cache-analysis.d.ts.map +1 -1
- package/dist/tools/cache-analysis.js +438 -21
- package/dist/tools/cache-analysis.js.map +1 -1
- package/dist/tools/check-health.d.ts.map +1 -1
- package/dist/tools/check-health.js +261 -1
- package/dist/tools/check-health.js.map +1 -1
- package/dist/tools/class-histogram.d.ts.map +1 -1
- package/dist/tools/class-histogram.js +142 -33
- package/dist/tools/class-histogram.js.map +1 -1
- package/dist/tools/closure-inspection.d.ts.map +1 -1
- package/dist/tools/closure-inspection.js +238 -25
- package/dist/tools/closure-inspection.js.map +1 -1
- package/dist/tools/detached-dom.d.ts.map +1 -1
- package/dist/tools/detached-dom.js +25 -3
- package/dist/tools/detached-dom.js.map +1 -1
- package/dist/tools/dev-artifacts.d.ts +33 -0
- package/dist/tools/dev-artifacts.d.ts.map +1 -0
- package/dist/tools/dev-artifacts.js +165 -0
- package/dist/tools/dev-artifacts.js.map +1 -0
- package/dist/tools/diff-snapshots.d.ts.map +1 -1
- package/dist/tools/diff-snapshots.js +113 -18
- package/dist/tools/diff-snapshots.js.map +1 -1
- package/dist/tools/duplicated-strings.d.ts.map +1 -1
- package/dist/tools/duplicated-strings.js +74 -12
- package/dist/tools/duplicated-strings.js.map +1 -1
- package/dist/tools/eval.d.ts.map +1 -1
- package/dist/tools/eval.js +189 -10
- package/dist/tools/eval.js.map +1 -1
- package/dist/tools/event-listener-leaks.d.ts.map +1 -1
- package/dist/tools/event-listener-leaks.js +235 -13
- package/dist/tools/event-listener-leaks.js.map +1 -1
- package/dist/tools/event-registry.d.ts +12 -0
- package/dist/tools/event-registry.d.ts.map +1 -0
- package/dist/tools/event-registry.js +183 -0
- package/dist/tools/event-registry.js.map +1 -0
- package/dist/tools/find-by-property.d.ts.map +1 -1
- package/dist/tools/find-by-property.js +113 -31
- package/dist/tools/find-by-property.js.map +1 -1
- package/dist/tools/find-by-shape.d.ts +12 -0
- package/dist/tools/find-by-shape.d.ts.map +1 -0
- package/dist/tools/find-by-shape.js +178 -0
- package/dist/tools/find-by-shape.js.map +1 -0
- package/dist/tools/find-nodes-by-class.d.ts.map +1 -1
- package/dist/tools/find-nodes-by-class.js +50 -6
- package/dist/tools/find-nodes-by-class.js.map +1 -1
- package/dist/tools/for-each.d.ts.map +1 -1
- package/dist/tools/for-each.js +1 -1
- package/dist/tools/for-each.js.map +1 -1
- package/dist/tools/get-node.d.ts.map +1 -1
- package/dist/tools/get-node.js +6 -0
- package/dist/tools/get-node.js.map +1 -1
- package/dist/tools/get-string.d.ts +12 -0
- package/dist/tools/get-string.d.ts.map +1 -0
- package/dist/tools/get-string.js +223 -0
- package/dist/tools/get-string.js.map +1 -0
- package/dist/tools/get-value.d.ts +12 -0
- package/dist/tools/get-value.d.ts.map +1 -0
- package/dist/tools/get-value.js +152 -0
- package/dist/tools/get-value.js.map +1 -0
- package/dist/tools/global-variables.d.ts.map +1 -1
- package/dist/tools/global-variables.js +54 -34
- package/dist/tools/global-variables.js.map +1 -1
- package/dist/tools/growth-signals.d.ts +12 -0
- package/dist/tools/growth-signals.d.ts.map +1 -0
- package/dist/tools/growth-signals.js +211 -0
- package/dist/tools/growth-signals.js.map +1 -0
- package/dist/tools/intern-opportunities.d.ts +12 -0
- package/dist/tools/intern-opportunities.d.ts.map +1 -0
- package/dist/tools/intern-opportunities.js +289 -0
- package/dist/tools/intern-opportunities.js.map +1 -0
- package/dist/tools/load-snapshot.d.ts +10 -0
- package/dist/tools/load-snapshot.d.ts.map +1 -1
- package/dist/tools/load-snapshot.js +152 -15
- package/dist/tools/load-snapshot.js.map +1 -1
- package/dist/tools/object-cost-breakdown.d.ts +12 -0
- package/dist/tools/object-cost-breakdown.d.ts.map +1 -0
- package/dist/tools/object-cost-breakdown.js +439 -0
- package/dist/tools/object-cost-breakdown.js.map +1 -0
- package/dist/tools/object-shape.d.ts.map +1 -1
- package/dist/tools/object-shape.js +95 -2
- package/dist/tools/object-shape.js.map +1 -1
- package/dist/tools/pinch-points.d.ts.map +1 -1
- package/dist/tools/pinch-points.js +9 -9
- package/dist/tools/pinch-points.js.map +1 -1
- package/dist/tools/property-distribution.d.ts +12 -0
- package/dist/tools/property-distribution.d.ts.map +1 -0
- package/dist/tools/property-distribution.js +168 -0
- package/dist/tools/property-distribution.js.map +1 -0
- package/dist/tools/quick-diagnosis.d.ts.map +1 -1
- package/dist/tools/quick-diagnosis.js +56 -19
- package/dist/tools/quick-diagnosis.js.map +1 -1
- package/dist/tools/retainer-summary.d.ts.map +1 -1
- package/dist/tools/retainer-summary.js +90 -5
- 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 +74 -22
- 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 +10 -3
- package/dist/tools/search-nodes.js.map +1 -1
- package/dist/tools/search-strings.d.ts +12 -0
- package/dist/tools/search-strings.d.ts.map +1 -0
- package/dist/tools/search-strings.js +182 -0
- package/dist/tools/search-strings.js.map +1 -0
- package/dist/tools/sequence-analysis.d.ts +12 -0
- package/dist/tools/sequence-analysis.d.ts.map +1 -0
- package/dist/tools/sequence-analysis.js +234 -0
- package/dist/tools/sequence-analysis.js.map +1 -0
- package/dist/tools/server-status.d.ts +12 -0
- package/dist/tools/server-status.d.ts.map +1 -0
- package/dist/tools/server-status.js +41 -0
- package/dist/tools/server-status.js.map +1 -0
- package/dist/tools/shape-histogram.d.ts.map +1 -1
- package/dist/tools/shape-histogram.js +61 -16
- 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 +16 -11
- package/dist/tools/sliced-strings.js.map +1 -1
- package/dist/tools/snapshot-summary.d.ts.map +1 -1
- package/dist/tools/snapshot-summary.js +55 -13
- package/dist/tools/snapshot-summary.js.map +1 -1
- package/dist/tools/snapshots.d.ts +12 -0
- package/dist/tools/snapshots.d.ts.map +1 -0
- package/dist/tools/snapshots.js +93 -0
- package/dist/tools/snapshots.js.map +1 -0
- package/dist/tools/stale-collections.d.ts.map +1 -1
- package/dist/tools/stale-collections.js +248 -7
- package/dist/tools/stale-collections.js.map +1 -1
- package/dist/tools/trace-dominators.d.ts.map +1 -1
- package/dist/tools/trace-dominators.js +28 -1
- package/dist/tools/trace-dominators.js.map +1 -1
- package/dist/tools/weakmap-entries.d.ts +12 -0
- package/dist/tools/weakmap-entries.d.ts.map +1 -0
- package/dist/tools/weakmap-entries.js +156 -0
- package/dist/tools/weakmap-entries.js.map +1 -0
- package/dist/utils.d.ts +81 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +303 -35
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
package/dist/heap-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heap-state.js","sourceRoot":"","sources":["../src/heap-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"heap-state.js","sourceRoot":"","sources":["../src/heap-state.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
12
12
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
13
13
|
import memlabCore from '@memlab/core';
|
|
14
14
|
const { config, ErrorHandling } = memlabCore;
|
|
15
|
+
import { installAnalysisGuardrail } from './guardrail.js';
|
|
15
16
|
// Ensure errors throw exceptions instead of calling process.exit(1),
|
|
16
17
|
// so the MCP server can return proper error responses to the client.
|
|
17
18
|
config.errorHandling = ErrorHandling.Throw;
|
|
@@ -51,10 +52,29 @@ import { registerShapeHistogram } from './tools/shape-histogram.js';
|
|
|
51
52
|
import { registerQuickDiagnosis } from './tools/quick-diagnosis.js';
|
|
52
53
|
import { registerReferrerSummary } from './tools/referrer-summary.js';
|
|
53
54
|
import { registerEventListenerLeaks } from './tools/event-listener-leaks.js';
|
|
55
|
+
import { registerFindByShape } from './tools/find-by-shape.js';
|
|
56
|
+
import { registerWeakMapEntries } from './tools/weakmap-entries.js';
|
|
57
|
+
import { registerGetValue } from './tools/get-value.js';
|
|
58
|
+
import { registerGetString } from './tools/get-string.js';
|
|
59
|
+
import { registerSearchStrings } from './tools/search-strings.js';
|
|
60
|
+
import { registerArrayGroupBy } from './tools/array-group-by.js';
|
|
61
|
+
import { registerInternOpportunities } from './tools/intern-opportunities.js';
|
|
62
|
+
import { registerObjectCostBreakdown } from './tools/object-cost-breakdown.js';
|
|
63
|
+
import { registerSnapshots } from './tools/snapshots.js';
|
|
64
|
+
import { registerPropertyDistribution } from './tools/property-distribution.js';
|
|
65
|
+
import { registerGrowthSignals } from './tools/growth-signals.js';
|
|
66
|
+
import { registerServerStatus } from './tools/server-status.js';
|
|
67
|
+
import { registerDevArtifacts } from './tools/dev-artifacts.js';
|
|
68
|
+
import { registerSequenceAnalysis } from './tools/sequence-analysis.js';
|
|
69
|
+
import { registerEventRegistry } from './tools/event-registry.js';
|
|
54
70
|
const server = new McpServer({
|
|
55
71
|
name: 'memlab',
|
|
56
|
-
version: '2.
|
|
72
|
+
version: '2.12.0',
|
|
57
73
|
});
|
|
74
|
+
// Wrap every tool with a wall-clock guardrail (default 90s, override per-call
|
|
75
|
+
// with timeout_ms or globally with MEMLAB_ANALYSIS_TIMEOUT_MS). Must run before
|
|
76
|
+
// the tools are registered so their handlers are wrapped.
|
|
77
|
+
installAnalysisGuardrail(server);
|
|
58
78
|
registerLoadSnapshot(server);
|
|
59
79
|
registerSnapshotSummary(server);
|
|
60
80
|
registerLargestObjects(server);
|
|
@@ -89,8 +109,23 @@ registerShapeHistogram(server);
|
|
|
89
109
|
registerQuickDiagnosis(server);
|
|
90
110
|
registerReferrerSummary(server);
|
|
91
111
|
registerEventListenerLeaks(server);
|
|
112
|
+
registerFindByShape(server);
|
|
113
|
+
registerWeakMapEntries(server);
|
|
114
|
+
registerGetValue(server);
|
|
115
|
+
registerGetString(server);
|
|
116
|
+
registerSearchStrings(server);
|
|
92
117
|
registerEval(server);
|
|
93
118
|
registerForEach(server);
|
|
119
|
+
registerArrayGroupBy(server);
|
|
120
|
+
registerInternOpportunities(server);
|
|
121
|
+
registerObjectCostBreakdown(server);
|
|
122
|
+
registerSnapshots(server);
|
|
123
|
+
registerPropertyDistribution(server);
|
|
124
|
+
registerGrowthSignals(server);
|
|
125
|
+
registerServerStatus(server);
|
|
126
|
+
registerDevArtifacts(server);
|
|
127
|
+
registerSequenceAnalysis(server);
|
|
128
|
+
registerEventRegistry(server);
|
|
94
129
|
async function main() {
|
|
95
130
|
const transport = new StdioServerTransport();
|
|
96
131
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,MAAM,EAAC,MAAM,EAAE,aAAa,EAAC,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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 registerArrayGroupBy(server: McpServer): void;
|
|
12
|
+
//# sourceMappingURL=array-group-by.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-group-by.d.ts","sourceRoot":"","sources":["../../src/tools/array-group-by.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAWvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwO5D"}
|
|
@@ -0,0 +1,191 @@
|
|
|
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 { getSnapshot } from '../heap-state.js';
|
|
12
|
+
import { formatBytes, formatNumber, markdownTable, errorResult, toolResult, } from '../utils.js';
|
|
13
|
+
export function registerArrayGroupBy(server) {
|
|
14
|
+
server.tool('memlab_array_group_by', 'Iterate through array (or Map/Set) elements, extract a named property from each, and ' +
|
|
15
|
+
'group/count by the target value. Eliminates the most common memlab_eval boilerplate — ' +
|
|
16
|
+
'"iterate array, extract property, group by shape" — in a single tool call. ' +
|
|
17
|
+
'Example: given a listener array where each element has a "context" property, ' +
|
|
18
|
+
'this reports "649× ChatMsgsCollection, 1× MsgCollection, 1× Mirror". ' +
|
|
19
|
+
'Use group_by to control grouping: "name" (constructor name), "type" (node type), or "id" (unique node IDs).', {
|
|
20
|
+
node_id: z
|
|
21
|
+
.number()
|
|
22
|
+
.describe('The numeric ID of the Array, Map, or Set node to iterate over'),
|
|
23
|
+
element_property: z
|
|
24
|
+
.string()
|
|
25
|
+
.describe('Property name to extract from each element (e.g., "context", "callback", "key")'),
|
|
26
|
+
group_by: z
|
|
27
|
+
.enum(['name', 'type', 'id'])
|
|
28
|
+
.optional()
|
|
29
|
+
.default('name')
|
|
30
|
+
.describe('How to group the extracted targets: "name" groups by constructor/class name (default), ' +
|
|
31
|
+
'"type" groups by V8 node type, "id" counts unique node IDs'),
|
|
32
|
+
second_property: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Optional second property to extract alongside element_property. ' +
|
|
36
|
+
'When set, reports the distribution of the second property within each group. ' +
|
|
37
|
+
'Example: element_property="context", second_property="callback" shows ' +
|
|
38
|
+
'which callbacks are used with each context class.'),
|
|
39
|
+
limit: z
|
|
40
|
+
.number()
|
|
41
|
+
.optional()
|
|
42
|
+
.default(20)
|
|
43
|
+
.describe('Maximum number of groups to return (default 20)'),
|
|
44
|
+
}, async ({ node_id, element_property, group_by, second_property, limit }) => {
|
|
45
|
+
try {
|
|
46
|
+
const snapshot = getSnapshot();
|
|
47
|
+
const node = snapshot.getNodeById(node_id);
|
|
48
|
+
if (!node) {
|
|
49
|
+
return errorResult(`Node @${node_id} not found`);
|
|
50
|
+
}
|
|
51
|
+
const elements = [];
|
|
52
|
+
if (node.name === 'Map' || node.name === 'Set') {
|
|
53
|
+
for (const edge of node.references) {
|
|
54
|
+
if (String(edge.name_or_index) === 'table' &&
|
|
55
|
+
edge.toNode.type === 'array') {
|
|
56
|
+
for (const te of edge.toNode.references) {
|
|
57
|
+
if (te.toNode.id <= 3)
|
|
58
|
+
continue;
|
|
59
|
+
if (te.toNode.name === 'undefined' ||
|
|
60
|
+
te.toNode.name === 'the_hole')
|
|
61
|
+
continue;
|
|
62
|
+
elements.push({ elementNode: te.toNode });
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
for (const edge of node.references) {
|
|
70
|
+
if (edge.type !== 'element')
|
|
71
|
+
continue;
|
|
72
|
+
if (edge.toNode.id <= 3)
|
|
73
|
+
continue;
|
|
74
|
+
elements.push({ elementNode: edge.toNode });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (elements.length === 0) {
|
|
78
|
+
return toolResult(`@${node_id} (${node.name}) has no iterable elements. ` +
|
|
79
|
+
`Make sure this is an Array, Map, or Set node.`);
|
|
80
|
+
}
|
|
81
|
+
const groups = new Map();
|
|
82
|
+
let missingProperty = 0;
|
|
83
|
+
let totalElements = 0;
|
|
84
|
+
for (const { elementNode } of elements) {
|
|
85
|
+
totalElements++;
|
|
86
|
+
let targetNode = null;
|
|
87
|
+
let secondTargetNode = null;
|
|
88
|
+
for (const edge of elementNode.references) {
|
|
89
|
+
const eName = String(edge.name_or_index);
|
|
90
|
+
if (eName === element_property) {
|
|
91
|
+
targetNode = edge.toNode;
|
|
92
|
+
}
|
|
93
|
+
if (second_property && eName === second_property) {
|
|
94
|
+
secondTargetNode = edge.toNode;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!targetNode) {
|
|
98
|
+
missingProperty++;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
let groupKey;
|
|
102
|
+
switch (group_by) {
|
|
103
|
+
case 'type':
|
|
104
|
+
groupKey = targetNode.type;
|
|
105
|
+
break;
|
|
106
|
+
case 'id':
|
|
107
|
+
groupKey = `@${targetNode.id} ${targetNode.name}`;
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
groupKey = targetNode.name;
|
|
111
|
+
}
|
|
112
|
+
const existing = groups.get(groupKey);
|
|
113
|
+
if (existing) {
|
|
114
|
+
existing.count++;
|
|
115
|
+
existing.totalRetained += targetNode.retainedSize;
|
|
116
|
+
if (second_property && secondTargetNode) {
|
|
117
|
+
if (!existing.secondaryDistribution) {
|
|
118
|
+
existing.secondaryDistribution = new Map();
|
|
119
|
+
}
|
|
120
|
+
const secKey = secondTargetNode.name;
|
|
121
|
+
existing.secondaryDistribution.set(secKey, (existing.secondaryDistribution.get(secKey) ?? 0) + 1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const secondaryDist = second_property && secondTargetNode
|
|
126
|
+
? new Map([[secondTargetNode.name, 1]])
|
|
127
|
+
: undefined;
|
|
128
|
+
groups.set(groupKey, {
|
|
129
|
+
count: 1,
|
|
130
|
+
exampleTargetId: targetNode.id,
|
|
131
|
+
totalRetained: targetNode.retainedSize,
|
|
132
|
+
secondaryDistribution: secondaryDist,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const sorted = [...groups.entries()]
|
|
137
|
+
.sort((a, b) => b[1].count - a[1].count)
|
|
138
|
+
.slice(0, limit);
|
|
139
|
+
const lines = [
|
|
140
|
+
`Property \`${element_property}\` across ${formatNumber(totalElements)} elements of @${node_id} (${node.name}):`,
|
|
141
|
+
'',
|
|
142
|
+
];
|
|
143
|
+
const headers = [
|
|
144
|
+
group_by === 'id' ? 'Target' : `Target ${group_by}`,
|
|
145
|
+
'Count',
|
|
146
|
+
'%',
|
|
147
|
+
'Total Retained',
|
|
148
|
+
'Example',
|
|
149
|
+
];
|
|
150
|
+
const rightCols = new Set([1, 2, 3]);
|
|
151
|
+
const rows = sorted.map(([key, info]) => {
|
|
152
|
+
const pct = ((info.count / totalElements) * 100).toFixed(1) + '%';
|
|
153
|
+
return [
|
|
154
|
+
key,
|
|
155
|
+
formatNumber(info.count),
|
|
156
|
+
pct,
|
|
157
|
+
formatBytes(info.totalRetained),
|
|
158
|
+
`@${info.exampleTargetId}`,
|
|
159
|
+
];
|
|
160
|
+
});
|
|
161
|
+
lines.push(markdownTable(headers, rows, rightCols));
|
|
162
|
+
if (sorted.length < groups.size) {
|
|
163
|
+
lines.push('', `… and ${groups.size - sorted.length} more group(s)`);
|
|
164
|
+
}
|
|
165
|
+
if (missingProperty > 0) {
|
|
166
|
+
lines.push('', `${formatNumber(missingProperty)} element(s) missing property \`${element_property}\``);
|
|
167
|
+
}
|
|
168
|
+
if (second_property) {
|
|
169
|
+
const hasSecondary = sorted.some(([, info]) => info.secondaryDistribution && info.secondaryDistribution.size > 0);
|
|
170
|
+
if (hasSecondary) {
|
|
171
|
+
lines.push('', `**\`${second_property}\` distribution per group:**`);
|
|
172
|
+
for (const [key, info] of sorted.slice(0, 10)) {
|
|
173
|
+
if (!info.secondaryDistribution ||
|
|
174
|
+
info.secondaryDistribution.size === 0)
|
|
175
|
+
continue;
|
|
176
|
+
const secSorted = [...info.secondaryDistribution.entries()]
|
|
177
|
+
.sort((a, b) => b[1] - a[1])
|
|
178
|
+
.slice(0, 5);
|
|
179
|
+
const parts = secSorted.map(([name, count]) => `${count}× ${name}`);
|
|
180
|
+
lines.push(`- ${key}: ${parts.join(', ')}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return toolResult(lines.join('\n'));
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
return errorResult(err);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=array-group-by.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-group-by.js","sourceRoot":"","sources":["../../src/tools/array-group-by.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-investigate.d.ts","sourceRoot":"","sources":["../../src/tools/auto-investigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-investigate.d.ts","sourceRoot":"","sources":["../../src/tools/auto-investigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAm9CvE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAirB/D"}
|