@memlab/mcp-server 2.52.0 → 2.86.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 (277) hide show
  1. package/README.md +22 -2
  2. package/dist/anonymized-snapshot.d.ts +75 -0
  3. package/dist/anonymized-snapshot.d.ts.map +1 -0
  4. package/dist/anonymized-snapshot.js +101 -0
  5. package/dist/anonymized-snapshot.js.map +1 -0
  6. package/dist/eval-hints.d.ts +41 -0
  7. package/dist/eval-hints.d.ts.map +1 -0
  8. package/dist/eval-hints.js +115 -0
  9. package/dist/eval-hints.js.map +1 -0
  10. package/dist/heap-budget.d.ts +32 -0
  11. package/dist/heap-budget.d.ts.map +1 -0
  12. package/dist/heap-budget.js +90 -0
  13. package/dist/heap-budget.js.map +1 -0
  14. package/dist/heap-shapes.d.ts +148 -0
  15. package/dist/heap-shapes.d.ts.map +1 -0
  16. package/dist/heap-shapes.js +193 -0
  17. package/dist/heap-shapes.js.map +1 -0
  18. package/dist/heap-state.d.ts +20 -0
  19. package/dist/heap-state.d.ts.map +1 -1
  20. package/dist/heap-state.js +8 -1
  21. package/dist/heap-state.js.map +1 -1
  22. package/dist/index.js +64 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/react-shapes.d.ts +42 -0
  25. package/dist/react-shapes.d.ts.map +1 -0
  26. package/dist/react-shapes.js +149 -0
  27. package/dist/react-shapes.js.map +1 -0
  28. package/dist/server-version.d.ts +19 -0
  29. package/dist/server-version.d.ts.map +1 -0
  30. package/dist/server-version.js +19 -0
  31. package/dist/server-version.js.map +1 -0
  32. package/dist/snapshot-borrow.d.ts +67 -0
  33. package/dist/snapshot-borrow.d.ts.map +1 -0
  34. package/dist/snapshot-borrow.js +113 -0
  35. package/dist/snapshot-borrow.js.map +1 -0
  36. package/dist/string-index.d.ts.map +1 -1
  37. package/dist/string-index.js +8 -0
  38. package/dist/string-index.js.map +1 -1
  39. package/dist/tools/analyze-run.d.ts.map +1 -1
  40. package/dist/tools/analyze-run.js +79 -18
  41. package/dist/tools/analyze-run.js.map +1 -1
  42. package/dist/tools/anonymize-snapshot.d.ts +12 -0
  43. package/dist/tools/anonymize-snapshot.d.ts.map +1 -0
  44. package/dist/tools/anonymize-snapshot.js +159 -0
  45. package/dist/tools/anonymize-snapshot.js.map +1 -0
  46. package/dist/tools/app-config.d.ts +12 -0
  47. package/dist/tools/app-config.d.ts.map +1 -0
  48. package/dist/tools/app-config.js +217 -0
  49. package/dist/tools/app-config.js.map +1 -0
  50. package/dist/tools/app-heap.d.ts +18 -0
  51. package/dist/tools/app-heap.d.ts.map +1 -1
  52. package/dist/tools/app-heap.js +12 -46
  53. package/dist/tools/app-heap.js.map +1 -1
  54. package/dist/tools/artifact-budget.d.ts +12 -0
  55. package/dist/tools/artifact-budget.d.ts.map +1 -0
  56. package/dist/tools/artifact-budget.js +219 -0
  57. package/dist/tools/artifact-budget.js.map +1 -0
  58. package/dist/tools/async-census.d.ts +12 -0
  59. package/dist/tools/async-census.d.ts.map +1 -0
  60. package/dist/tools/async-census.js +243 -0
  61. package/dist/tools/async-census.js.map +1 -0
  62. package/dist/tools/auto-investigate.d.ts.map +1 -1
  63. package/dist/tools/auto-investigate.js +54 -5
  64. package/dist/tools/auto-investigate.js.map +1 -1
  65. package/dist/tools/batch.d.ts.map +1 -1
  66. package/dist/tools/batch.js +33 -5
  67. package/dist/tools/batch.js.map +1 -1
  68. package/dist/tools/cache-analysis.d.ts +15 -0
  69. package/dist/tools/cache-analysis.d.ts.map +1 -1
  70. package/dist/tools/cache-analysis.js +85 -10
  71. package/dist/tools/cache-analysis.js.map +1 -1
  72. package/dist/tools/census-diff.d.ts +55 -0
  73. package/dist/tools/census-diff.d.ts.map +1 -0
  74. package/dist/tools/census-diff.js +228 -0
  75. package/dist/tools/census-diff.js.map +1 -0
  76. package/dist/tools/chain-walk.d.ts +12 -0
  77. package/dist/tools/chain-walk.d.ts.map +1 -0
  78. package/dist/tools/chain-walk.js +184 -0
  79. package/dist/tools/chain-walk.js.map +1 -0
  80. package/dist/tools/collection-diff.d.ts +44 -0
  81. package/dist/tools/collection-diff.d.ts.map +1 -0
  82. package/dist/tools/collection-diff.js +343 -0
  83. package/dist/tools/collection-diff.js.map +1 -0
  84. package/dist/tools/collection-trend.d.ts.map +1 -1
  85. package/dist/tools/collection-trend.js +2 -2
  86. package/dist/tools/collection-trend.js.map +1 -1
  87. package/dist/tools/detached-dom.d.ts +3 -0
  88. package/dist/tools/detached-dom.d.ts.map +1 -1
  89. package/dist/tools/detached-dom.js +78 -3
  90. package/dist/tools/detached-dom.js.map +1 -1
  91. package/dist/tools/dev-artifacts.d.ts.map +1 -1
  92. package/dist/tools/dev-artifacts.js +221 -3
  93. package/dist/tools/dev-artifacts.js.map +1 -1
  94. package/dist/tools/diff-snapshots.d.ts.map +1 -1
  95. package/dist/tools/diff-snapshots.js +18 -2
  96. package/dist/tools/diff-snapshots.js.map +1 -1
  97. package/dist/tools/dom-audit.d.ts +37 -0
  98. package/dist/tools/dom-audit.d.ts.map +1 -0
  99. package/dist/tools/dom-audit.js +247 -0
  100. package/dist/tools/dom-audit.js.map +1 -0
  101. package/dist/tools/duplicated-strings.d.ts.map +1 -1
  102. package/dist/tools/duplicated-strings.js +3 -2
  103. package/dist/tools/duplicated-strings.js.map +1 -1
  104. package/dist/tools/eval-across.d.ts +12 -0
  105. package/dist/tools/eval-across.d.ts.map +1 -0
  106. package/dist/tools/eval-across.js +135 -0
  107. package/dist/tools/eval-across.js.map +1 -0
  108. package/dist/tools/eval.d.ts +78 -0
  109. package/dist/tools/eval.d.ts.map +1 -1
  110. package/dist/tools/eval.js +2270 -701
  111. package/dist/tools/eval.js.map +1 -1
  112. package/dist/tools/event-listener-leaks.d.ts.map +1 -1
  113. package/dist/tools/event-listener-leaks.js +42 -17
  114. package/dist/tools/event-listener-leaks.js.map +1 -1
  115. package/dist/tools/event-registry.d.ts.map +1 -1
  116. package/dist/tools/event-registry.js +42 -8
  117. package/dist/tools/event-registry.js.map +1 -1
  118. package/dist/tools/explain-delta.d.ts.map +1 -1
  119. package/dist/tools/explain-delta.js +61 -10
  120. package/dist/tools/explain-delta.js.map +1 -1
  121. package/dist/tools/finding-index.d.ts +181 -0
  122. package/dist/tools/finding-index.d.ts.map +1 -1
  123. package/dist/tools/finding-index.js +343 -24
  124. package/dist/tools/finding-index.js.map +1 -1
  125. package/dist/tools/get-value.d.ts +16 -0
  126. package/dist/tools/get-value.d.ts.map +1 -1
  127. package/dist/tools/get-value.js +96 -2
  128. package/dist/tools/get-value.js.map +1 -1
  129. package/dist/tools/hypothesis.d.ts.map +1 -1
  130. package/dist/tools/hypothesis.js +117 -58
  131. package/dist/tools/hypothesis.js.map +1 -1
  132. package/dist/tools/id-space-audit.d.ts +12 -0
  133. package/dist/tools/id-space-audit.d.ts.map +1 -0
  134. package/dist/tools/id-space-audit.js +262 -0
  135. package/dist/tools/id-space-audit.js.map +1 -0
  136. package/dist/tools/identify.d.ts +12 -0
  137. package/dist/tools/identify.d.ts.map +1 -0
  138. package/dist/tools/identify.js +205 -0
  139. package/dist/tools/identify.js.map +1 -0
  140. package/dist/tools/identity-diff.d.ts +12 -0
  141. package/dist/tools/identity-diff.d.ts.map +1 -0
  142. package/dist/tools/identity-diff.js +188 -0
  143. package/dist/tools/identity-diff.js.map +1 -0
  144. package/dist/tools/intern-opportunities.d.ts.map +1 -1
  145. package/dist/tools/intern-opportunities.js +4 -3
  146. package/dist/tools/intern-opportunities.js.map +1 -1
  147. package/dist/tools/ladder-probe.d.ts +65 -0
  148. package/dist/tools/ladder-probe.d.ts.map +1 -0
  149. package/dist/tools/ladder-probe.js +445 -0
  150. package/dist/tools/ladder-probe.js.map +1 -0
  151. package/dist/tools/ladder.d.ts.map +1 -1
  152. package/dist/tools/ladder.js +5 -5
  153. package/dist/tools/ladder.js.map +1 -1
  154. package/dist/tools/leak-report.d.ts +23 -0
  155. package/dist/tools/leak-report.d.ts.map +1 -1
  156. package/dist/tools/leak-report.js +153 -11
  157. package/dist/tools/leak-report.js.map +1 -1
  158. package/dist/tools/load-snapshot.d.ts +11 -0
  159. package/dist/tools/load-snapshot.d.ts.map +1 -1
  160. package/dist/tools/load-snapshot.js +83 -10
  161. package/dist/tools/load-snapshot.js.map +1 -1
  162. package/dist/tools/metric.d.ts +13 -0
  163. package/dist/tools/metric.d.ts.map +1 -0
  164. package/dist/tools/metric.js +185 -0
  165. package/dist/tools/metric.js.map +1 -0
  166. package/dist/tools/module-attribution.d.ts +36 -0
  167. package/dist/tools/module-attribution.d.ts.map +1 -0
  168. package/dist/tools/module-attribution.js +235 -0
  169. package/dist/tools/module-attribution.js.map +1 -0
  170. package/dist/tools/next-measurement.d.ts +26 -0
  171. package/dist/tools/next-measurement.d.ts.map +1 -0
  172. package/dist/tools/next-measurement.js +149 -0
  173. package/dist/tools/next-measurement.js.map +1 -0
  174. package/dist/tools/object-cost-breakdown.d.ts.map +1 -1
  175. package/dist/tools/object-cost-breakdown.js +64 -0
  176. package/dist/tools/object-cost-breakdown.js.map +1 -1
  177. package/dist/tools/population-vs-owners.d.ts +12 -0
  178. package/dist/tools/population-vs-owners.d.ts.map +1 -0
  179. package/dist/tools/population-vs-owners.js +183 -0
  180. package/dist/tools/population-vs-owners.js.map +1 -0
  181. package/dist/tools/property-names.d.ts +29 -0
  182. package/dist/tools/property-names.d.ts.map +1 -0
  183. package/dist/tools/property-names.js +131 -0
  184. package/dist/tools/property-names.js.map +1 -0
  185. package/dist/tools/quick-diagnosis.d.ts.map +1 -1
  186. package/dist/tools/quick-diagnosis.js +7 -1
  187. package/dist/tools/quick-diagnosis.js.map +1 -1
  188. package/dist/tools/react-owners.d.ts +12 -0
  189. package/dist/tools/react-owners.d.ts.map +1 -0
  190. package/dist/tools/react-owners.js +167 -0
  191. package/dist/tools/react-owners.js.map +1 -0
  192. package/dist/tools/react-update-queues.d.ts +12 -0
  193. package/dist/tools/react-update-queues.d.ts.map +1 -0
  194. package/dist/tools/react-update-queues.js +173 -0
  195. package/dist/tools/react-update-queues.js.map +1 -0
  196. package/dist/tools/replicate.d.ts +49 -0
  197. package/dist/tools/replicate.d.ts.map +1 -0
  198. package/dist/tools/replicate.js +241 -0
  199. package/dist/tools/replicate.js.map +1 -0
  200. package/dist/tools/retainer-diff.d.ts +12 -0
  201. package/dist/tools/retainer-diff.d.ts.map +1 -0
  202. package/dist/tools/retainer-diff.js +168 -0
  203. package/dist/tools/retainer-diff.js.map +1 -0
  204. package/dist/tools/retainer-summary.d.ts +17 -0
  205. package/dist/tools/retainer-summary.d.ts.map +1 -1
  206. package/dist/tools/retainer-summary.js +85 -22
  207. package/dist/tools/retainer-summary.js.map +1 -1
  208. package/dist/tools/retainer-trace.d.ts.map +1 -1
  209. package/dist/tools/retainer-trace.js +11 -1
  210. package/dist/tools/retainer-trace.js.map +1 -1
  211. package/dist/tools/round-audit.d.ts +66 -0
  212. package/dist/tools/round-audit.d.ts.map +1 -0
  213. package/dist/tools/round-audit.js +258 -0
  214. package/dist/tools/round-audit.js.map +1 -0
  215. package/dist/tools/round-digest.d.ts +12 -0
  216. package/dist/tools/round-digest.d.ts.map +1 -0
  217. package/dist/tools/round-digest.js +190 -0
  218. package/dist/tools/round-digest.js.map +1 -0
  219. package/dist/tools/script-census.d.ts +12 -0
  220. package/dist/tools/script-census.d.ts.map +1 -0
  221. package/dist/tools/script-census.js +182 -0
  222. package/dist/tools/script-census.js.map +1 -0
  223. package/dist/tools/sequence-analysis.d.ts +4 -0
  224. package/dist/tools/sequence-analysis.d.ts.map +1 -1
  225. package/dist/tools/sequence-analysis.js +53 -9
  226. package/dist/tools/sequence-analysis.js.map +1 -1
  227. package/dist/tools/server-status.d.ts.map +1 -1
  228. package/dist/tools/server-status.js +4 -1
  229. package/dist/tools/server-status.js.map +1 -1
  230. package/dist/tools/settle-check.d.ts +12 -0
  231. package/dist/tools/settle-check.d.ts.map +1 -0
  232. package/dist/tools/settle-check.js +188 -0
  233. package/dist/tools/settle-check.js.map +1 -0
  234. package/dist/tools/sliced-strings.d.ts.map +1 -1
  235. package/dist/tools/sliced-strings.js +2 -1
  236. package/dist/tools/sliced-strings.js.map +1 -1
  237. package/dist/tools/snapshots.d.ts.map +1 -1
  238. package/dist/tools/snapshots.js +24 -6
  239. package/dist/tools/snapshots.js.map +1 -1
  240. package/dist/tools/sparse-elements.d.ts +12 -0
  241. package/dist/tools/sparse-elements.d.ts.map +1 -0
  242. package/dist/tools/sparse-elements.js +215 -0
  243. package/dist/tools/sparse-elements.js.map +1 -0
  244. package/dist/tools/stale-collections.d.ts +17 -0
  245. package/dist/tools/stale-collections.d.ts.map +1 -1
  246. package/dist/tools/stale-collections.js +28 -0
  247. package/dist/tools/stale-collections.js.map +1 -1
  248. package/dist/tools/string-patterns.d.ts.map +1 -1
  249. package/dist/tools/string-patterns.js +2 -1
  250. package/dist/tools/string-patterns.js.map +1 -1
  251. package/dist/tools/tools-index.d.ts.map +1 -1
  252. package/dist/tools/tools-index.js +155 -5
  253. package/dist/tools/tools-index.js.map +1 -1
  254. package/dist/tools/trace-all.d.ts +42 -0
  255. package/dist/tools/trace-all.d.ts.map +1 -0
  256. package/dist/tools/trace-all.js +263 -0
  257. package/dist/tools/trace-all.js.map +1 -0
  258. package/dist/tools/unit-cost.d.ts +12 -0
  259. package/dist/tools/unit-cost.d.ts.map +1 -0
  260. package/dist/tools/unit-cost.js +219 -0
  261. package/dist/tools/unit-cost.js.map +1 -0
  262. package/dist/tools/verify-fix.d.ts.map +1 -1
  263. package/dist/tools/verify-fix.js +11 -3
  264. package/dist/tools/verify-fix.js.map +1 -1
  265. package/dist/tools/weakref-census.d.ts +15 -0
  266. package/dist/tools/weakref-census.d.ts.map +1 -0
  267. package/dist/tools/weakref-census.js +147 -0
  268. package/dist/tools/weakref-census.js.map +1 -0
  269. package/dist/tools/what-if.d.ts +12 -0
  270. package/dist/tools/what-if.d.ts.map +1 -0
  271. package/dist/tools/what-if.js +285 -0
  272. package/dist/tools/what-if.js.map +1 -0
  273. package/dist/utils.d.ts +92 -2
  274. package/dist/utils.d.ts.map +1 -1
  275. package/dist/utils.js +172 -5
  276. package/dist/utils.js.map +1 -1
  277. package/package.json +3 -3
@@ -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,65 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall memory_lab
9
+ */
10
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ /**
12
+ * Pull a single number out of whatever the probe returned.
13
+ *
14
+ * `memlab_eval` renders `result` as text, so the value has to be recovered
15
+ * rather than read. A bare number is the documented contract; a one-key object
16
+ * (`{count: 42}`) is accepted because that is what people write by reflex.
17
+ *
18
+ * Anything else is REFUSED rather than guessed. An earlier version fell back to
19
+ * "take the last number in the output", which turned `result = {a: 1, b: 2}`
20
+ * into the value 2 — a plausible series built from the wrong field. A probe
21
+ * that silently measures something other than what was asked is worse than one
22
+ * that errors, because the rate it produces looks exactly as trustworthy as a
23
+ * real one.
24
+ */
25
+ export declare function extractNumber(text: string): number | null;
26
+ export interface LinearFit {
27
+ slope: number;
28
+ intercept: number;
29
+ r2: number;
30
+ }
31
+ /**
32
+ * Least-squares fit of value against x.
33
+ *
34
+ * r-squared is the point. "Grew at every step" is a weak claim on four rungs —
35
+ * it is one bit of information and any noisy upward drift satisfies it. A slope
36
+ * with r2 ~= 1.0 says the population is a linear function of interaction count,
37
+ * which is the actual shape of an unbounded per-cycle leak and is what
38
+ * distinguishes it from a cache filling toward a plateau.
39
+ *
40
+ * A perfectly flat series has zero variance to explain; r2 is reported as 1
41
+ * there because "the line explains the data" is true and the alternative (NaN,
42
+ * from 0/0) reads as a failure when the answer is a clean negative.
43
+ */
44
+ export declare function linearFit(xs: number[], ys: number[]): LinearFit;
45
+ export declare function verdictFor(values: number[], fit: LinearFit): string;
46
+ type ProbeOutcome = {
47
+ value: number | null;
48
+ error: string | null;
49
+ };
50
+ /**
51
+ * Run EVERY metric against one rung, inside a single load of that rung.
52
+ *
53
+ * The load is what costs: a 300 MB capture takes far longer to parse and build
54
+ * dominators for than any probe takes to run against it. Measured usage of this
55
+ * tool is a dozen calls over the same ladder, each asking a one-line question —
56
+ * `helpers.byClass(X).length` — and each re-loading every rung. Batching the
57
+ * metrics collapses that to one pass over the ladder.
58
+ */
59
+ export declare function probeRung(localPath: string, metrics: Array<{
60
+ name: string;
61
+ code: string;
62
+ }>, timeoutMs: number, maxNodes: number): Promise<Map<string, ProbeOutcome>>;
63
+ export declare function registerLadderProbe(server: McpServer): void;
64
+ export {};
65
+ //# sourceMappingURL=ladder-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ladder-probe.d.ts","sourceRoot":"","sources":["../../src/tools/ladder-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AA8BvE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2CzD;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,SAAS,CAkB/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAkEnE;AASD,KAAK,YAAY,GAAG;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAC,CAAC;AAEjE;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAwCpC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8S3D"}
@@ -0,0 +1,445 @@
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 { armScanBudgetFor, resolveRungs, scaledTimeoutMs, withSnapshotAt, } from '../snapshot-borrow.js';
12
+ import { errorResult, formatNumber, markdownTable, pathsHeader, toolResult, } from '../utils.js';
13
+ import { runEval } from './eval.js';
14
+ import { resolveLadderPaths } from './ladder.js';
15
+ function textOf(result) {
16
+ const content = result?.content;
17
+ if (!Array.isArray(content))
18
+ return '';
19
+ return content
20
+ .map(c => (typeof c?.text === 'string' ? c.text : ''))
21
+ .join('\n')
22
+ .trim();
23
+ }
24
+ /**
25
+ * Pull a single number out of whatever the probe returned.
26
+ *
27
+ * `memlab_eval` renders `result` as text, so the value has to be recovered
28
+ * rather than read. A bare number is the documented contract; a one-key object
29
+ * (`{count: 42}`) is accepted because that is what people write by reflex.
30
+ *
31
+ * Anything else is REFUSED rather than guessed. An earlier version fell back to
32
+ * "take the last number in the output", which turned `result = {a: 1, b: 2}`
33
+ * into the value 2 — a plausible series built from the wrong field. A probe
34
+ * that silently measures something other than what was asked is worse than one
35
+ * that errors, because the rate it produces looks exactly as trustworthy as a
36
+ * real one.
37
+ */
38
+ export function extractNumber(text) {
39
+ // `memlab_eval` wraps the value: a "> Snapshot: ..." session header above it
40
+ // and a "--- ..." footer below carrying `nodes_visited`, truncation notes,
41
+ // save confirmations and built-in-tool hints. Both have to come off before
42
+ // the value can be read.
43
+ //
44
+ // The footer is not cosmetic to get wrong. A probe whose code happens to
45
+ // trigger a hint — say a `{callback, context}` census, which is one of the
46
+ // populations this tool exists to measure — otherwise produces
47
+ // `"1125\n\n--- note: ..."`, which parses as neither a number nor JSON, so
48
+ // EVERY rung reports "probe did not yield a number" and the measurement is
49
+ // lost. Found by running a real ladder, not by reading the code.
50
+ const lines = text.split('\n');
51
+ const footerAt = lines.findIndex(line => line.startsWith('--- '));
52
+ const body = footerAt >= 0 ? lines.slice(0, footerAt) : lines;
53
+ const trimmed = body
54
+ .filter(line => !line.startsWith('> '))
55
+ .join('\n')
56
+ .trim();
57
+ if (trimmed === '')
58
+ return null;
59
+ const direct = Number(trimmed);
60
+ if (Number.isFinite(direct))
61
+ return direct;
62
+ try {
63
+ const parsed = JSON.parse(trimmed);
64
+ if (typeof parsed === 'number' && Number.isFinite(parsed))
65
+ return parsed;
66
+ if (parsed != null &&
67
+ typeof parsed === 'object' &&
68
+ !Array.isArray(parsed)) {
69
+ const values = Object.values(parsed);
70
+ if (values.length === 1 &&
71
+ typeof values[0] === 'number' &&
72
+ Number.isFinite(values[0])) {
73
+ return values[0];
74
+ }
75
+ }
76
+ }
77
+ catch {
78
+ // Not JSON, and not a bare number: refuse.
79
+ }
80
+ return null;
81
+ }
82
+ /**
83
+ * Least-squares fit of value against x.
84
+ *
85
+ * r-squared is the point. "Grew at every step" is a weak claim on four rungs —
86
+ * it is one bit of information and any noisy upward drift satisfies it. A slope
87
+ * with r2 ~= 1.0 says the population is a linear function of interaction count,
88
+ * which is the actual shape of an unbounded per-cycle leak and is what
89
+ * distinguishes it from a cache filling toward a plateau.
90
+ *
91
+ * A perfectly flat series has zero variance to explain; r2 is reported as 1
92
+ * there because "the line explains the data" is true and the alternative (NaN,
93
+ * from 0/0) reads as a failure when the answer is a clean negative.
94
+ */
95
+ export function linearFit(xs, ys) {
96
+ const n = xs.length;
97
+ const meanX = xs.reduce((a, b) => a + b, 0) / n;
98
+ const meanY = ys.reduce((a, b) => a + b, 0) / n;
99
+ let sxy = 0;
100
+ let sxx = 0;
101
+ let syy = 0;
102
+ for (let i = 0; i < n; i++) {
103
+ const dx = xs[i] - meanX;
104
+ const dy = ys[i] - meanY;
105
+ sxy += dx * dy;
106
+ sxx += dx * dx;
107
+ syy += dy * dy;
108
+ }
109
+ const slope = sxx === 0 ? 0 : sxy / sxx;
110
+ const intercept = meanY - slope * meanX;
111
+ const r2 = syy === 0 ? 1 : (sxy * sxy) / (sxx * syy);
112
+ return { slope, intercept, r2 };
113
+ }
114
+ export function verdictFor(values, fit) {
115
+ const n = values.length;
116
+ const delta = values[n - 1] - values[0];
117
+ // FLAT is the strongest negative claim this produces, so it has to mean the
118
+ // whole series was flat — not merely that the two ENDS coincide. A series like
119
+ // [10, 5, 15, 10] has delta 0 while swinging by 10 in between, and calling
120
+ // that "identical at both ends" reads as "nothing happened" when something
121
+ // clearly did. Check the full range before claiming it.
122
+ const min = Math.min(...values);
123
+ const max = Math.max(...values);
124
+ if (min === max)
125
+ return 'FLAT — identical at every rung';
126
+ if (delta === 0) {
127
+ return (`ends where it started (${formatNumber(values[0])}) but swung between ` +
128
+ `${formatNumber(min)} and ${formatNumber(max)} in between — NOT flat; ` +
129
+ 'usually GC timing rather than a trend, but read the per-rung deltas above');
130
+ }
131
+ if (delta < 0)
132
+ return 'shrank';
133
+ // "grew every step" must mean STRICTLY increasing. Accepting non-decreasing
134
+ // let a step function claim steady growth: the series [924, 924, 1297, 1297]
135
+ // was reported as "grew every step (but not a clean line)" when two of its
136
+ // three steps were zero. That is the opposite diagnosis — one jump then a
137
+ // plateau is bounded first-mount allocation, not an unbounded per-cycle leak —
138
+ // and the wording sent a reader looking for a slope that is not there.
139
+ let nonDecreasing = true;
140
+ let strictlyIncreasing = true;
141
+ let risingSteps = 0;
142
+ let flatSteps = 0;
143
+ let firstJump = -1;
144
+ for (let i = 1; i < n; i++) {
145
+ if (values[i] < values[i - 1]) {
146
+ nonDecreasing = false;
147
+ strictlyIncreasing = false;
148
+ }
149
+ else if (values[i] === values[i - 1]) {
150
+ strictlyIncreasing = false;
151
+ flatSteps++;
152
+ }
153
+ else {
154
+ risingSteps++;
155
+ if (firstJump < 0)
156
+ firstJump = i;
157
+ }
158
+ }
159
+ if (strictlyIncreasing && fit.r2 >= 0.98) {
160
+ return 'LINEAR — grew every step, r2 >= 0.98 (unbounded per-cycle shape)';
161
+ }
162
+ if (strictlyIncreasing)
163
+ return 'grew every step (but not a clean line)';
164
+ // Non-decreasing with at least one flat step. Name the shape instead of
165
+ // rounding it up to growth; a single jump is the classic bounded allocation.
166
+ if (nonDecreasing) {
167
+ if (risingSteps === 1) {
168
+ return (`STEP FUNCTION — flat except for ONE jump at rung ${firstJump} ` +
169
+ `(${formatNumber(values[firstJump - 1])} → ${formatNumber(values[firstJump])}), ` +
170
+ 'flat on the other ' +
171
+ `${flatSteps} step(s). NOT a per-cycle slope — this is the shape of a ` +
172
+ 'bounded one-time allocation (e.g. first mount of a surface), so size ' +
173
+ 'what it actually retains before treating it as a leak');
174
+ }
175
+ return (`non-decreasing but NOT strictly increasing — ${risingSteps} rising step(s) ` +
176
+ `and ${flatSteps} flat step(s); read the per-rung deltas above rather than ` +
177
+ 'the trend line, since flat steps mean growth is episodic, not per-cycle');
178
+ }
179
+ return 'grew net, not monotonic — often GC/navigation noise';
180
+ }
181
+ /**
182
+ * Run EVERY metric against one rung, inside a single load of that rung.
183
+ *
184
+ * The load is what costs: a 300 MB capture takes far longer to parse and build
185
+ * dominators for than any probe takes to run against it. Measured usage of this
186
+ * tool is a dozen calls over the same ladder, each asking a one-line question —
187
+ * `helpers.byClass(X).length` — and each re-loading every rung. Batching the
188
+ * metrics collapses that to one pass over the ladder.
189
+ */
190
+ export async function probeRung(localPath, metrics, timeoutMs, maxNodes) {
191
+ const out = new Map();
192
+ try {
193
+ await withSnapshotAt(localPath, async () => {
194
+ for (const metric of metrics) {
195
+ try {
196
+ const res = await runEval({
197
+ mode: 'eval',
198
+ code: metric.code,
199
+ timeout_ms: timeoutMs,
200
+ max_nodes: maxNodes,
201
+ });
202
+ const text = textOf(res);
203
+ const value = extractNumber(text);
204
+ out.set(metric.name, value == null
205
+ ? {
206
+ value: null,
207
+ error: `probe did not yield a number (got: ${text.slice(0, 120) || 'empty'})`,
208
+ }
209
+ : { value, error: null });
210
+ }
211
+ catch (e) {
212
+ // One metric failing must not cost the others their rung: the whole
213
+ // point of batching is that they share an expensive load.
214
+ out.set(metric.name, {
215
+ value: null,
216
+ error: e instanceof Error ? e.message : String(e),
217
+ });
218
+ }
219
+ }
220
+ });
221
+ }
222
+ catch (e) {
223
+ const error = e instanceof Error ? e.message : String(e);
224
+ for (const metric of metrics) {
225
+ if (!out.has(metric.name))
226
+ out.set(metric.name, { value: null, error });
227
+ }
228
+ }
229
+ return out;
230
+ }
231
+ export function registerLadderProbe(server) {
232
+ server.tool('memlab_ladder_probe', 'Run ONE numeric probe across an ORDERED ladder of snapshots and report the series, the per-cycle rate and a linear fit. ' +
233
+ 'This is the "what is the rate of X?" tool, where X is any population YOU can express — not one of the built-in class histograms.\n\n' +
234
+ '`memlab_leak_report` and `memlab_sequence_analysis` answer this for CLASSES. Every other question — how many ' +
235
+ '`{callback, context}` listener records are held per event, how many entries a named cache holds, how many update ' +
236
+ 'records match a shape, how large a specific registry has grown — has to be written as an eval, and answering it ' +
237
+ 'across a six-rung ladder by hand costs a load + eval + save + unload per rung and a manual diff at the end. ' +
238
+ 'That friction is enough that the question often just does not get asked, so the round reports a class-level verdict ' +
239
+ 'and the actual finding goes unmeasured.\n\n' +
240
+ 'Differs from `memlab_eval_across`, which requires every snapshot to be RESIDENT simultaneously — impossible for a ' +
241
+ 'ladder of large captures. This resolves PATHS, reuses any rung that happens to be resident, and otherwise loads ' +
242
+ 'and drops one graph at a time, restoring your active snapshot when it finishes.\n\n' +
243
+ 'Report `r2` alongside the slope: "grew at every step" is one bit and any noisy drift satisfies it, whereas a slope ' +
244
+ 'with r2 near 1.0 is the signature of an unbounded per-cycle leak and is what separates it from a cache filling ' +
245
+ 'toward a plateau.', {
246
+ paths: z
247
+ .array(z.string())
248
+ .min(1)
249
+ .describe('Ordered snapshot paths, oldest rung first. Local paths, manifold:// URLs, bare filenames, or a single ["ladder:<name>"] reference.'),
250
+ code: z
251
+ .string()
252
+ .optional()
253
+ .describe('JavaScript run against each rung, exactly as in memlab_eval, which must assign a NUMBER to `result` — e.g. `result = helpers.byClass("OpusRecorder").length`. A one-key object such as {count: n} is also accepted. Provide this OR `metrics`.'),
254
+ metrics: z
255
+ .record(z.string())
256
+ .optional()
257
+ .describe('SEVERAL named probes measured in ONE pass over the ladder: {"detached_rows": "result = …", "listener_records": "result = …"}. Strongly preferred over calling this tool once per question — the snapshot LOAD dominates the cost, so N metrics in one call costs roughly the same as one, where N separate calls costs N times as much. Each value follows the same rules as `code`; one metric failing does not cost the others their rung.'),
258
+ cycles: z
259
+ .number()
260
+ .optional()
261
+ .describe('Interaction cycles driven between the FIRST and LAST rung. When given, the rate is reported per cycle (the number a leak is actually quoted in) and the fit is against cycle count rather than rung index. Rungs are assumed evenly spaced in cycles unless cycles_per_rung is given.'),
262
+ cycles_per_rung: z
263
+ .array(z.number())
264
+ .optional()
265
+ .describe('Exact cumulative cycle count at each rung, when the ladder is NOT evenly spaced (the common case — rungs are placed on a schedule, not at equal intervals). Must match `paths` in length; overrides `cycles`.'),
266
+ label: z
267
+ .string()
268
+ .optional()
269
+ .describe('Name for the probed population, used in the report header.'),
270
+ timeout_ms: z
271
+ .number()
272
+ .optional()
273
+ .describe('Per-rung execution timeout. Defaults to a value scaled from the largest rung (a full-heap walk on a multi-million-node graph does not finish in the 60 s eval default).'),
274
+ max_nodes: z
275
+ .number()
276
+ .int()
277
+ .min(1)
278
+ .optional()
279
+ .default(20000000)
280
+ .describe('Per-rung node-visit budget for full-heap walks.'),
281
+ max_file_size_mb: z
282
+ .number()
283
+ .optional()
284
+ .describe('Per-file size ceiling, matching memlab_load_snapshot.'),
285
+ }, async ({ paths, code, metrics, cycles, cycles_per_rung, label, timeout_ms, max_nodes, max_file_size_mb, }) => {
286
+ try {
287
+ const { paths: resolved } = resolveLadderPaths(paths);
288
+ if (resolved.length < 2) {
289
+ return errorResult(new Error(`memlab_ladder_probe needs at least 2 rungs; got ${resolved.length}. A rate needs two points.`));
290
+ }
291
+ if (cycles_per_rung != null &&
292
+ cycles_per_rung.length !== resolved.length) {
293
+ return errorResult(new Error(`cycles_per_rung has ${cycles_per_rung.length} entries but the ladder has ${resolved.length} rungs.`));
294
+ }
295
+ // `code` and `metrics` are the same feature at different arities; one
296
+ // pass over the ladder answers either.
297
+ const metricList = [];
298
+ if (code != null && code.trim() !== '') {
299
+ metricList.push({ name: label ?? 'probe', code });
300
+ }
301
+ for (const [name, mCode] of Object.entries(metrics ?? {})) {
302
+ metricList.push({ name, code: mCode });
303
+ }
304
+ if (metricList.length === 0) {
305
+ return errorResult(new Error('Pass `code` for a single probe, or `metrics` for several measured in one pass over the ladder.'));
306
+ }
307
+ const { rungs: locals, largestMB } = resolveRungs(resolved, max_file_size_mb);
308
+ const effectiveTimeout = scaledTimeoutMs(largestMB, timeout_ms);
309
+ // Parallel to metricList by INDEX rather than keyed by name: a name is
310
+ // not guaranteed unique (a `label` can collide with a `metrics` key),
311
+ // and a keyed map would silently merge two series into one.
312
+ const perMetric = metricList.map(() => []);
313
+ for (const { label: rungLabel, localPath } of locals) {
314
+ // Per rung, not once: the budget is a wall clock, so a six-rung
315
+ // ladder would otherwise spend rung 1's allowance and starve rung 6.
316
+ armScanBudgetFor(effectiveTimeout);
317
+ const outcomes = await probeRung(localPath, metricList, effectiveTimeout, max_nodes);
318
+ metricList.forEach((m, mi) => {
319
+ const o = outcomes.get(m.name) ?? {
320
+ value: null,
321
+ error: 'metric not measured',
322
+ };
323
+ perMetric[mi].push({
324
+ label: rungLabel,
325
+ localPath,
326
+ value: o.value,
327
+ error: o.error,
328
+ });
329
+ });
330
+ }
331
+ const xsFor = (n) => Array.from({ length: n }, (_, i) => {
332
+ if (cycles_per_rung != null)
333
+ return cycles_per_rung[i];
334
+ if (cycles != null)
335
+ return (cycles * i) / (n - 1);
336
+ return i;
337
+ });
338
+ const perCycleKnown = cycles != null || cycles_per_rung != null;
339
+ const lines = [];
340
+ const multi = metricList.length > 1;
341
+ lines.push(multi
342
+ ? `## Ladder probe — ${metricList.length} metrics over ${locals.length} rungs`
343
+ : `## Ladder probe — \`${metricList[0].name}\``);
344
+ lines.push('');
345
+ if (multi) {
346
+ lines.push(`_All ${metricList.length} metrics were measured in a single pass over the ladder — each rung was loaded once._`);
347
+ lines.push('');
348
+ }
349
+ let anyUsable = false;
350
+ for (let mi = 0; mi < metricList.length; mi++) {
351
+ const m = metricList[mi];
352
+ const rungs = perMetric[mi];
353
+ const xs = xsFor(rungs.length);
354
+ const usable = rungs.filter((r) => r.value != null);
355
+ if (multi) {
356
+ lines.push(`### \`${m.name}\``);
357
+ lines.push('');
358
+ }
359
+ if (usable.length < 2) {
360
+ const errs = rungs
361
+ .filter(r => r.error != null)
362
+ .map(r => `- ${r.label}: ${r.error}`)
363
+ .join('\n');
364
+ lines.push(`**UNMEASURED** — only ${usable.length} rung(s) produced a number, so no rate can be computed. The probe must assign a NUMBER to \`result\`.`);
365
+ if (errs)
366
+ lines.push('', errs);
367
+ lines.push('');
368
+ continue;
369
+ }
370
+ anyUsable = true;
371
+ const usableXs = [];
372
+ const usableYs = [];
373
+ rungs.forEach((r, i) => {
374
+ if (r.value != null) {
375
+ usableXs.push(xs[i]);
376
+ usableYs.push(r.value);
377
+ }
378
+ });
379
+ const fit = linearFit(usableXs, usableYs);
380
+ const first = usableYs[0];
381
+ const last = usableYs[usableYs.length - 1];
382
+ const delta = last - first;
383
+ const rows = rungs.map((r, i) => [
384
+ r.label,
385
+ perCycleKnown ? formatNumber(xs[i]) : String(i),
386
+ r.value != null
387
+ ? formatNumber(r.value)
388
+ : `(${r.error ?? 'no value'})`,
389
+ r.value != null && i > 0 && rungs[i - 1].value != null
390
+ ? formatNumber(r.value - rungs[i - 1].value)
391
+ : '',
392
+ ]);
393
+ lines.push(markdownTable([
394
+ 'Rung',
395
+ perCycleKnown ? 'Cycles' : 'Index',
396
+ 'Value',
397
+ 'Δ vs prev',
398
+ ], rows));
399
+ lines.push('');
400
+ lines.push(`**${formatNumber(first)} → ${formatNumber(last)}** (Δ ${delta >= 0 ? '+' : ''}${formatNumber(delta)}) across ${usable.length} usable rung(s).`);
401
+ if (perCycleKnown) {
402
+ lines.push(`**Rate: ${fit.slope >= 0 ? '+' : ''}${fit.slope.toFixed(3)} per cycle**, r2 = ${fit.r2.toFixed(4)}.`);
403
+ }
404
+ else {
405
+ lines.push(`**Slope: ${fit.slope >= 0 ? '+' : ''}${fit.slope.toFixed(3)} per rung**, r2 = ${fit.r2.toFixed(4)}. ` +
406
+ 'Pass `cycles` or `cycles_per_rung` to get a per-cycle rate, which is the unit a leak is quoted in.');
407
+ }
408
+ lines.push('');
409
+ lines.push(`**Verdict:** ${verdictFor(usableYs, fit)}`);
410
+ if (usable.length === 2) {
411
+ // A line through two points fits them perfectly, so r2 is 1.0000 by
412
+ // construction and "grew every step" is the same statement as "grew".
413
+ // Measured: a 2-rung probe reported detached DOM as
414
+ // "LINEAR, r2 = 1.0000, +0.927/cycle" on the same population a
415
+ // 4-rung probe had just reported FLAT at 880 -> 880. The verdict
416
+ // wording is exactly as confident in both cases, which is what makes
417
+ // it dangerous. `memlab_leak_report` already warns at n=2; this did not.
418
+ lines.push('', '> ⚠️ **Only 2 rungs: r2 is 1.0000 by construction** and the verdict above carries no more ' +
419
+ 'information than the sign of the delta. A line through two points always fits. Add a third ' +
420
+ 'rung before treating this as a rate — and if a longer ladder of the same population ' +
421
+ 'disagreed, believe the longer one.');
422
+ }
423
+ const failed = rungs.filter(r => r.error != null);
424
+ if (failed.length > 0) {
425
+ lines.push('');
426
+ lines.push(`_${failed.length} rung(s) produced no value and were excluded from the fit:_`);
427
+ for (const f of failed)
428
+ lines.push(`- ${f.label}: ${f.error}`);
429
+ }
430
+ lines.push('');
431
+ }
432
+ if (!anyUsable) {
433
+ return errorResult(new Error(`No metric produced two usable rungs, so nothing can be fitted. See the per-metric errors above; the probe must assign a NUMBER to \`result\`.`));
434
+ }
435
+ lines.push('_A rate is not a cause. Confirm the population with `memlab_retainer_trace` / `memlab_retainer_layers` ' +
436
+ 'on a sample before calling it a leak — and check `memlab_dev_artifacts`, since a dev-only population ' +
437
+ 'grows just as linearly as a real one._');
438
+ return toolResult(lines.join('\n'), pathsHeader(locals.map(r => r.label)));
439
+ }
440
+ catch (e) {
441
+ return errorResult(e instanceof Error ? e : new Error(String(e)));
442
+ }
443
+ });
444
+ }
445
+ //# sourceMappingURL=ladder-probe.js.map