@memlab/mcp-server 2.18.1 → 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 (374) hide show
  1. package/README.md +30 -16
  2. package/bin/.eslintrc.js +26 -0
  3. package/bin/memlab-cli.js +313 -0
  4. package/dist/anonymized-snapshot.d.ts +75 -0
  5. package/dist/anonymized-snapshot.d.ts.map +1 -0
  6. package/dist/anonymized-snapshot.js +101 -0
  7. package/dist/anonymized-snapshot.js.map +1 -0
  8. package/dist/artifact-classes.d.ts +86 -0
  9. package/dist/artifact-classes.d.ts.map +1 -0
  10. package/dist/artifact-classes.js +261 -0
  11. package/dist/artifact-classes.js.map +1 -0
  12. package/dist/capture-mode.d.ts +60 -0
  13. package/dist/capture-mode.d.ts.map +1 -0
  14. package/dist/capture-mode.js +39 -0
  15. package/dist/capture-mode.js.map +1 -0
  16. package/dist/eval-hints.d.ts +41 -0
  17. package/dist/eval-hints.d.ts.map +1 -0
  18. package/dist/eval-hints.js +115 -0
  19. package/dist/eval-hints.js.map +1 -0
  20. package/dist/guardrail.d.ts.map +1 -1
  21. package/dist/guardrail.js +13 -0
  22. package/dist/guardrail.js.map +1 -1
  23. package/dist/heap-budget.d.ts +32 -0
  24. package/dist/heap-budget.d.ts.map +1 -0
  25. package/dist/heap-budget.js +90 -0
  26. package/dist/heap-budget.js.map +1 -0
  27. package/dist/heap-shapes.d.ts +148 -0
  28. package/dist/heap-shapes.d.ts.map +1 -0
  29. package/dist/heap-shapes.js +193 -0
  30. package/dist/heap-shapes.js.map +1 -0
  31. package/dist/heap-state.d.ts +109 -2
  32. package/dist/heap-state.d.ts.map +1 -1
  33. package/dist/heap-state.js +194 -3
  34. package/dist/heap-state.js.map +1 -1
  35. package/dist/index.js +102 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/progress.d.ts +25 -0
  38. package/dist/progress.d.ts.map +1 -0
  39. package/dist/progress.js +46 -0
  40. package/dist/progress.js.map +1 -0
  41. package/dist/react-shapes.d.ts +42 -0
  42. package/dist/react-shapes.d.ts.map +1 -0
  43. package/dist/react-shapes.js +149 -0
  44. package/dist/react-shapes.js.map +1 -0
  45. package/dist/result-handles.d.ts +11 -0
  46. package/dist/result-handles.d.ts.map +1 -0
  47. package/dist/result-handles.js +77 -0
  48. package/dist/result-handles.js.map +1 -0
  49. package/dist/server-version.d.ts +19 -0
  50. package/dist/server-version.d.ts.map +1 -0
  51. package/dist/server-version.js +19 -0
  52. package/dist/server-version.js.map +1 -0
  53. package/dist/snapshot-borrow.d.ts +67 -0
  54. package/dist/snapshot-borrow.d.ts.map +1 -0
  55. package/dist/snapshot-borrow.js +113 -0
  56. package/dist/snapshot-borrow.js.map +1 -0
  57. package/dist/string-index.d.ts +55 -0
  58. package/dist/string-index.d.ts.map +1 -0
  59. package/dist/string-index.js +99 -0
  60. package/dist/string-index.js.map +1 -0
  61. package/dist/tool-registry.d.ts +42 -0
  62. package/dist/tool-registry.d.ts.map +1 -0
  63. package/dist/tool-registry.js +20 -0
  64. package/dist/tool-registry.js.map +1 -0
  65. package/dist/tools/analyze-run.d.ts +12 -0
  66. package/dist/tools/analyze-run.d.ts.map +1 -0
  67. package/dist/tools/analyze-run.js +404 -0
  68. package/dist/tools/analyze-run.js.map +1 -0
  69. package/dist/tools/anonymize-snapshot.d.ts +12 -0
  70. package/dist/tools/anonymize-snapshot.d.ts.map +1 -0
  71. package/dist/tools/anonymize-snapshot.js +159 -0
  72. package/dist/tools/anonymize-snapshot.js.map +1 -0
  73. package/dist/tools/app-config.d.ts +12 -0
  74. package/dist/tools/app-config.d.ts.map +1 -0
  75. package/dist/tools/app-config.js +217 -0
  76. package/dist/tools/app-config.js.map +1 -0
  77. package/dist/tools/app-heap.d.ts +30 -0
  78. package/dist/tools/app-heap.d.ts.map +1 -0
  79. package/dist/tools/app-heap.js +106 -0
  80. package/dist/tools/app-heap.js.map +1 -0
  81. package/dist/tools/artifact-budget.d.ts +12 -0
  82. package/dist/tools/artifact-budget.d.ts.map +1 -0
  83. package/dist/tools/artifact-budget.js +219 -0
  84. package/dist/tools/artifact-budget.js.map +1 -0
  85. package/dist/tools/async-census.d.ts +12 -0
  86. package/dist/tools/async-census.d.ts.map +1 -0
  87. package/dist/tools/async-census.js +243 -0
  88. package/dist/tools/async-census.js.map +1 -0
  89. package/dist/tools/auto-investigate.d.ts.map +1 -1
  90. package/dist/tools/auto-investigate.js +54 -5
  91. package/dist/tools/auto-investigate.js.map +1 -1
  92. package/dist/tools/batch.d.ts +12 -0
  93. package/dist/tools/batch.d.ts.map +1 -0
  94. package/dist/tools/batch.js +196 -0
  95. package/dist/tools/batch.js.map +1 -0
  96. package/dist/tools/cache-analysis.d.ts +15 -0
  97. package/dist/tools/cache-analysis.d.ts.map +1 -1
  98. package/dist/tools/cache-analysis.js +240 -14
  99. package/dist/tools/cache-analysis.js.map +1 -1
  100. package/dist/tools/census-diff.d.ts +55 -0
  101. package/dist/tools/census-diff.d.ts.map +1 -0
  102. package/dist/tools/census-diff.js +228 -0
  103. package/dist/tools/census-diff.js.map +1 -0
  104. package/dist/tools/chain-walk.d.ts +12 -0
  105. package/dist/tools/chain-walk.d.ts.map +1 -0
  106. package/dist/tools/chain-walk.js +184 -0
  107. package/dist/tools/chain-walk.js.map +1 -0
  108. package/dist/tools/class-histogram.d.ts.map +1 -1
  109. package/dist/tools/class-histogram.js +14 -3
  110. package/dist/tools/class-histogram.js.map +1 -1
  111. package/dist/tools/collection-diff.d.ts +44 -0
  112. package/dist/tools/collection-diff.d.ts.map +1 -0
  113. package/dist/tools/collection-diff.js +343 -0
  114. package/dist/tools/collection-diff.js.map +1 -0
  115. package/dist/tools/collection-trend.d.ts +55 -0
  116. package/dist/tools/collection-trend.d.ts.map +1 -0
  117. package/dist/tools/collection-trend.js +315 -0
  118. package/dist/tools/collection-trend.js.map +1 -0
  119. package/dist/tools/detached-dom.d.ts +5 -0
  120. package/dist/tools/detached-dom.d.ts.map +1 -1
  121. package/dist/tools/detached-dom.js +368 -22
  122. package/dist/tools/detached-dom.js.map +1 -1
  123. package/dist/tools/dev-artifacts.d.ts +62 -6
  124. package/dist/tools/dev-artifacts.d.ts.map +1 -1
  125. package/dist/tools/dev-artifacts.js +685 -24
  126. package/dist/tools/dev-artifacts.js.map +1 -1
  127. package/dist/tools/diff-snapshots.d.ts.map +1 -1
  128. package/dist/tools/diff-snapshots.js +18 -2
  129. package/dist/tools/diff-snapshots.js.map +1 -1
  130. package/dist/tools/dom-audit.d.ts +37 -0
  131. package/dist/tools/dom-audit.d.ts.map +1 -0
  132. package/dist/tools/dom-audit.js +247 -0
  133. package/dist/tools/dom-audit.js.map +1 -0
  134. package/dist/tools/dominator-attribution.d.ts +12 -0
  135. package/dist/tools/dominator-attribution.d.ts.map +1 -0
  136. package/dist/tools/dominator-attribution.js +189 -0
  137. package/dist/tools/dominator-attribution.js.map +1 -0
  138. package/dist/tools/dominator-chain.d.ts +12 -0
  139. package/dist/tools/dominator-chain.d.ts.map +1 -0
  140. package/dist/tools/dominator-chain.js +92 -0
  141. package/dist/tools/dominator-chain.js.map +1 -0
  142. package/dist/tools/duplicate-objects.d.ts +12 -0
  143. package/dist/tools/duplicate-objects.d.ts.map +1 -0
  144. package/dist/tools/duplicate-objects.js +172 -0
  145. package/dist/tools/duplicate-objects.js.map +1 -0
  146. package/dist/tools/duplicated-strings.d.ts.map +1 -1
  147. package/dist/tools/duplicated-strings.js +49 -40
  148. package/dist/tools/duplicated-strings.js.map +1 -1
  149. package/dist/tools/eval-across.d.ts +12 -0
  150. package/dist/tools/eval-across.d.ts.map +1 -0
  151. package/dist/tools/eval-across.js +135 -0
  152. package/dist/tools/eval-across.js.map +1 -0
  153. package/dist/tools/eval.d.ts +79 -0
  154. package/dist/tools/eval.d.ts.map +1 -1
  155. package/dist/tools/eval.js +2523 -197
  156. package/dist/tools/eval.js.map +1 -1
  157. package/dist/tools/event-listener-leaks.d.ts.map +1 -1
  158. package/dist/tools/event-listener-leaks.js +42 -17
  159. package/dist/tools/event-listener-leaks.js.map +1 -1
  160. package/dist/tools/event-registry.d.ts.map +1 -1
  161. package/dist/tools/event-registry.js +42 -8
  162. package/dist/tools/event-registry.js.map +1 -1
  163. package/dist/tools/explain-delta.d.ts +12 -0
  164. package/dist/tools/explain-delta.d.ts.map +1 -0
  165. package/dist/tools/explain-delta.js +221 -0
  166. package/dist/tools/explain-delta.js.map +1 -0
  167. package/dist/tools/find-nodes-by-class.d.ts.map +1 -1
  168. package/dist/tools/find-nodes-by-class.js +112 -13
  169. package/dist/tools/find-nodes-by-class.js.map +1 -1
  170. package/dist/tools/finding-index.d.ts +203 -0
  171. package/dist/tools/finding-index.d.ts.map +1 -0
  172. package/dist/tools/finding-index.js +566 -0
  173. package/dist/tools/finding-index.js.map +1 -0
  174. package/dist/tools/for-each.d.ts.map +1 -1
  175. package/dist/tools/for-each.js +15 -3
  176. package/dist/tools/for-each.js.map +1 -1
  177. package/dist/tools/get-referrers.d.ts.map +1 -1
  178. package/dist/tools/get-referrers.js +17 -0
  179. package/dist/tools/get-referrers.js.map +1 -1
  180. package/dist/tools/get-value.d.ts +16 -0
  181. package/dist/tools/get-value.d.ts.map +1 -1
  182. package/dist/tools/get-value.js +96 -2
  183. package/dist/tools/get-value.js.map +1 -1
  184. package/dist/tools/hunt-report.d.ts +12 -0
  185. package/dist/tools/hunt-report.d.ts.map +1 -0
  186. package/dist/tools/hunt-report.js +186 -0
  187. package/dist/tools/hunt-report.js.map +1 -0
  188. package/dist/tools/hypothesis.d.ts +12 -0
  189. package/dist/tools/hypothesis.d.ts.map +1 -0
  190. package/dist/tools/hypothesis.js +280 -0
  191. package/dist/tools/hypothesis.js.map +1 -0
  192. package/dist/tools/id-space-audit.d.ts +12 -0
  193. package/dist/tools/id-space-audit.d.ts.map +1 -0
  194. package/dist/tools/id-space-audit.js +262 -0
  195. package/dist/tools/id-space-audit.js.map +1 -0
  196. package/dist/tools/identify.d.ts +12 -0
  197. package/dist/tools/identify.d.ts.map +1 -0
  198. package/dist/tools/identify.js +205 -0
  199. package/dist/tools/identify.js.map +1 -0
  200. package/dist/tools/identity-diff.d.ts +12 -0
  201. package/dist/tools/identity-diff.d.ts.map +1 -0
  202. package/dist/tools/identity-diff.js +188 -0
  203. package/dist/tools/identity-diff.js.map +1 -0
  204. package/dist/tools/intern-opportunities.d.ts.map +1 -1
  205. package/dist/tools/intern-opportunities.js +116 -50
  206. package/dist/tools/intern-opportunities.js.map +1 -1
  207. package/dist/tools/ladder-probe.d.ts +65 -0
  208. package/dist/tools/ladder-probe.d.ts.map +1 -0
  209. package/dist/tools/ladder-probe.js +445 -0
  210. package/dist/tools/ladder-probe.js.map +1 -0
  211. package/dist/tools/ladder.d.ts +33 -0
  212. package/dist/tools/ladder.d.ts.map +1 -0
  213. package/dist/tools/ladder.js +266 -0
  214. package/dist/tools/ladder.js.map +1 -0
  215. package/dist/tools/largest-objects.d.ts.map +1 -1
  216. package/dist/tools/largest-objects.js +6 -2
  217. package/dist/tools/largest-objects.js.map +1 -1
  218. package/dist/tools/leak-report.d.ts +35 -0
  219. package/dist/tools/leak-report.d.ts.map +1 -0
  220. package/dist/tools/leak-report.js +398 -0
  221. package/dist/tools/leak-report.js.map +1 -0
  222. package/dist/tools/load-snapshot.d.ts +29 -0
  223. package/dist/tools/load-snapshot.d.ts.map +1 -1
  224. package/dist/tools/load-snapshot.js +294 -23
  225. package/dist/tools/load-snapshot.js.map +1 -1
  226. package/dist/tools/map-entries.d.ts +12 -0
  227. package/dist/tools/map-entries.d.ts.map +1 -0
  228. package/dist/tools/map-entries.js +139 -0
  229. package/dist/tools/map-entries.js.map +1 -0
  230. package/dist/tools/match-object.d.ts +12 -0
  231. package/dist/tools/match-object.d.ts.map +1 -0
  232. package/dist/tools/match-object.js +165 -0
  233. package/dist/tools/match-object.js.map +1 -0
  234. package/dist/tools/metric.d.ts +13 -0
  235. package/dist/tools/metric.d.ts.map +1 -0
  236. package/dist/tools/metric.js +185 -0
  237. package/dist/tools/metric.js.map +1 -0
  238. package/dist/tools/module-attribution.d.ts +36 -0
  239. package/dist/tools/module-attribution.d.ts.map +1 -0
  240. package/dist/tools/module-attribution.js +235 -0
  241. package/dist/tools/module-attribution.js.map +1 -0
  242. package/dist/tools/next-measurement.d.ts +26 -0
  243. package/dist/tools/next-measurement.d.ts.map +1 -0
  244. package/dist/tools/next-measurement.js +149 -0
  245. package/dist/tools/next-measurement.js.map +1 -0
  246. package/dist/tools/object-cost-breakdown.d.ts.map +1 -1
  247. package/dist/tools/object-cost-breakdown.js +64 -0
  248. package/dist/tools/object-cost-breakdown.js.map +1 -1
  249. package/dist/tools/object-shape.d.ts.map +1 -1
  250. package/dist/tools/object-shape.js +53 -5
  251. package/dist/tools/object-shape.js.map +1 -1
  252. package/dist/tools/population-diff.d.ts +57 -0
  253. package/dist/tools/population-diff.d.ts.map +1 -0
  254. package/dist/tools/population-diff.js +338 -0
  255. package/dist/tools/population-diff.js.map +1 -0
  256. package/dist/tools/population-vs-owners.d.ts +12 -0
  257. package/dist/tools/population-vs-owners.d.ts.map +1 -0
  258. package/dist/tools/population-vs-owners.js +183 -0
  259. package/dist/tools/population-vs-owners.js.map +1 -0
  260. package/dist/tools/property-names.d.ts +29 -0
  261. package/dist/tools/property-names.d.ts.map +1 -0
  262. package/dist/tools/property-names.js +131 -0
  263. package/dist/tools/property-names.js.map +1 -0
  264. package/dist/tools/quick-diagnosis.d.ts.map +1 -1
  265. package/dist/tools/quick-diagnosis.js +7 -1
  266. package/dist/tools/quick-diagnosis.js.map +1 -1
  267. package/dist/tools/react-owners.d.ts +12 -0
  268. package/dist/tools/react-owners.d.ts.map +1 -0
  269. package/dist/tools/react-owners.js +167 -0
  270. package/dist/tools/react-owners.js.map +1 -0
  271. package/dist/tools/react-update-queues.d.ts +12 -0
  272. package/dist/tools/react-update-queues.d.ts.map +1 -0
  273. package/dist/tools/react-update-queues.js +173 -0
  274. package/dist/tools/react-update-queues.js.map +1 -0
  275. package/dist/tools/replicate.d.ts +49 -0
  276. package/dist/tools/replicate.d.ts.map +1 -0
  277. package/dist/tools/replicate.js +241 -0
  278. package/dist/tools/replicate.js.map +1 -0
  279. package/dist/tools/retainer-diff.d.ts +12 -0
  280. package/dist/tools/retainer-diff.d.ts.map +1 -0
  281. package/dist/tools/retainer-diff.js +168 -0
  282. package/dist/tools/retainer-diff.js.map +1 -0
  283. package/dist/tools/retainer-layers.d.ts +23 -0
  284. package/dist/tools/retainer-layers.d.ts.map +1 -0
  285. package/dist/tools/retainer-layers.js +179 -0
  286. package/dist/tools/retainer-layers.js.map +1 -0
  287. package/dist/tools/retainer-summary.d.ts +18 -0
  288. package/dist/tools/retainer-summary.d.ts.map +1 -1
  289. package/dist/tools/retainer-summary.js +210 -51
  290. package/dist/tools/retainer-summary.js.map +1 -1
  291. package/dist/tools/retainer-trace.d.ts.map +1 -1
  292. package/dist/tools/retainer-trace.js +14 -2
  293. package/dist/tools/retainer-trace.js.map +1 -1
  294. package/dist/tools/round-audit.d.ts +66 -0
  295. package/dist/tools/round-audit.d.ts.map +1 -0
  296. package/dist/tools/round-audit.js +258 -0
  297. package/dist/tools/round-audit.js.map +1 -0
  298. package/dist/tools/round-digest.d.ts +12 -0
  299. package/dist/tools/round-digest.d.ts.map +1 -0
  300. package/dist/tools/round-digest.js +190 -0
  301. package/dist/tools/round-digest.js.map +1 -0
  302. package/dist/tools/script-census.d.ts +12 -0
  303. package/dist/tools/script-census.d.ts.map +1 -0
  304. package/dist/tools/script-census.js +182 -0
  305. package/dist/tools/script-census.js.map +1 -0
  306. package/dist/tools/search-nodes.d.ts.map +1 -1
  307. package/dist/tools/search-nodes.js +5 -1
  308. package/dist/tools/search-nodes.js.map +1 -1
  309. package/dist/tools/search-strings.d.ts.map +1 -1
  310. package/dist/tools/search-strings.js +53 -7
  311. package/dist/tools/search-strings.js.map +1 -1
  312. package/dist/tools/sequence-analysis.d.ts +53 -0
  313. package/dist/tools/sequence-analysis.d.ts.map +1 -1
  314. package/dist/tools/sequence-analysis.js +313 -89
  315. package/dist/tools/sequence-analysis.js.map +1 -1
  316. package/dist/tools/server-status.d.ts.map +1 -1
  317. package/dist/tools/server-status.js +4 -1
  318. package/dist/tools/server-status.js.map +1 -1
  319. package/dist/tools/settle-check.d.ts +12 -0
  320. package/dist/tools/settle-check.d.ts.map +1 -0
  321. package/dist/tools/settle-check.js +188 -0
  322. package/dist/tools/settle-check.js.map +1 -0
  323. package/dist/tools/shape-histogram.d.ts.map +1 -1
  324. package/dist/tools/shape-histogram.js +9 -2
  325. package/dist/tools/shape-histogram.js.map +1 -1
  326. package/dist/tools/sliced-strings.d.ts.map +1 -1
  327. package/dist/tools/sliced-strings.js +2 -1
  328. package/dist/tools/sliced-strings.js.map +1 -1
  329. package/dist/tools/snapshots.d.ts.map +1 -1
  330. package/dist/tools/snapshots.js +24 -6
  331. package/dist/tools/snapshots.js.map +1 -1
  332. package/dist/tools/sparse-elements.d.ts +12 -0
  333. package/dist/tools/sparse-elements.d.ts.map +1 -0
  334. package/dist/tools/sparse-elements.js +215 -0
  335. package/dist/tools/sparse-elements.js.map +1 -0
  336. package/dist/tools/stale-collections.d.ts +17 -0
  337. package/dist/tools/stale-collections.d.ts.map +1 -1
  338. package/dist/tools/stale-collections.js +28 -0
  339. package/dist/tools/stale-collections.js.map +1 -1
  340. package/dist/tools/string-patterns.d.ts.map +1 -1
  341. package/dist/tools/string-patterns.js +7 -5
  342. package/dist/tools/string-patterns.js.map +1 -1
  343. package/dist/tools/tools-index.d.ts +12 -0
  344. package/dist/tools/tools-index.d.ts.map +1 -0
  345. package/dist/tools/tools-index.js +492 -0
  346. package/dist/tools/tools-index.js.map +1 -0
  347. package/dist/tools/trace-all.d.ts +42 -0
  348. package/dist/tools/trace-all.d.ts.map +1 -0
  349. package/dist/tools/trace-all.js +263 -0
  350. package/dist/tools/trace-all.js.map +1 -0
  351. package/dist/tools/unit-cost.d.ts +12 -0
  352. package/dist/tools/unit-cost.d.ts.map +1 -0
  353. package/dist/tools/unit-cost.js +219 -0
  354. package/dist/tools/unit-cost.js.map +1 -0
  355. package/dist/tools/verify-fix.d.ts +23 -0
  356. package/dist/tools/verify-fix.d.ts.map +1 -0
  357. package/dist/tools/verify-fix.js +219 -0
  358. package/dist/tools/verify-fix.js.map +1 -0
  359. package/dist/tools/weakmap-entries.d.ts.map +1 -1
  360. package/dist/tools/weakmap-entries.js +6 -1
  361. package/dist/tools/weakmap-entries.js.map +1 -1
  362. package/dist/tools/weakref-census.d.ts +15 -0
  363. package/dist/tools/weakref-census.d.ts.map +1 -0
  364. package/dist/tools/weakref-census.js +147 -0
  365. package/dist/tools/weakref-census.js.map +1 -0
  366. package/dist/tools/what-if.d.ts +12 -0
  367. package/dist/tools/what-if.d.ts.map +1 -0
  368. package/dist/tools/what-if.js +285 -0
  369. package/dist/tools/what-if.js.map +1 -0
  370. package/dist/utils.d.ts +238 -3
  371. package/dist/utils.d.ts.map +1 -1
  372. package/dist/utils.js +507 -15
  373. package/dist/utils.js.map +1 -1
  374. package/package.json +7 -6
@@ -9,7 +9,11 @@
9
9
  */
10
10
  import { z } from 'zod';
11
11
  import { getSnapshot, getSnapshotMetadata, getSessionConfig, } from '../heap-state.js';
12
+ import { withAnonymizedBanner } from '../anonymized-snapshot.js';
12
13
  import { formatBytes, formatNumber, markdownTable, errorResult, toolResult, } from '../utils.js';
14
+ import { collectDevRoots, computeReachableWithoutDevRoots, } from './dev-artifacts.js';
15
+ import { buildStringIndex } from '../string-index.js';
16
+ import { classifyNonProductionString, isHarnessToolManifestShape, } from '../artifact-classes.js';
13
17
  // V8 splits a single logical object's storage across several internal backing
14
18
  // structures: a `system / PropertyArray` (named props once the object grows past
15
19
  // the inline slot count), `(object properties)` / `(object elements)` arrays, and
@@ -150,7 +154,7 @@ function isFrameworkOwned(propertyName, parentShape, parentShapeProps) {
150
154
  export function registerInternOpportunities(server) {
151
155
  server.tool('memlab_intern_opportunities', 'Identify string interning opportunities by grouping duplicated strings by the property name and parent object shape that holds them. Shows total savings per (property × shape) combination — the key metric for deciding where to add a string interning pool. Also surfaces ARRAY-ELEMENT / columnar duplication (strings held as elements of a rowsAsArray / string[][] result buffer — a common Nest mysql2/Drizzle shape) as first-class groups keyed by column index and array-owner shape, folded into the within-load headline; these are marked with a filled square and fixed by interning at the array-construction/parse site. The within-load figure is split at the canonical 128-char intern cap into cappable (<=128 chars, what the recommended fix reclaims) vs over-cap (longer strings the cap skips), so the headline matches what a compliant fix actually reclaims. Replaces the manual workflow of: duplicated_strings → retainer_summary → codebase grep. ' +
152
156
  'Retention-aware: flags groups whose duplicated instances are ALSO held by another structure (e.g. a raw array/matrix) as "co-retained" — interning the property there reclaims ~0, so the savings are reported separately and you must dedupe the shared source instead. ' +
153
- 'The headline "within-load capturable" figure also excludes framework/infra-owned strings (HTTP headers, cookies, auth tokens, Next.js URL/cache context) and low-ROI groups (high-cardinality + long strings, where the intern pool costs more than it saves), reporting each in its own bucket; and it flags concatenated-string (rope) buildup, which is accumulation rather than duplication and cannot be interned. ' +
157
+ 'The headline "within-load capturable" figure also excludes framework/infra-owned strings (HTTP headers, cookies, auth tokens, Next.js URL/cache context), measurement-harness content (the CDP/devtools bridge injected to drive the session — an injected bundle can be the single largest "opportunity" in a driven snapshot while reclaiming nothing in production), and low-ROI groups (high-cardinality + long strings, where the intern pool costs more than it saves), reporting each in its own bucket; and it flags concatenated-string (rope) buildup, which is accumulation rather than duplication and cannot be interned. ' +
154
158
  '⚠ Full-heap scan (builds string-duplication groups) — slow and memory-heavy on very large heaps (millions of nodes); raise min_copies / min_savings to bound it.', {
155
159
  limit: z
156
160
  .number()
@@ -177,45 +181,35 @@ export function registerInternOpportunities(server) {
177
181
  const snapshot = getSnapshot();
178
182
  const meta = getSnapshotMetadata();
179
183
  const totalSize = meta?.totalSize ?? 0;
180
- // Step 1: Build frequency map of duplicated strings
181
- const stringMap = new Map();
182
- // Cheap retention-pattern signal (Feedback round 7 §4): a heap dominated
183
- // by `(concatenated string)` (cons/rope) nodes is string ACCUMULATION
184
- // (repeated `+=` / join into a long-lived buffer), NOT value duplication
185
- // interning cannot help. Count them by name in the pass we already do
186
- // (O(1) per node, no value materialization) so we can flag the pattern
187
- // instead of silently reporting tiny interning wins.
188
- let concatStringCount = 0;
189
- let concatStringSize = 0;
190
- snapshot.nodes.forEach(node => {
191
- if (node.name === '(concatenated string)') {
192
- concatStringCount++;
193
- concatStringSize += node.self_size;
194
- }
195
- if (node.type !== 'string')
196
- return;
197
- if (node.name === 'system / SlicedString')
198
- return;
199
- const strNode = node.toStringNode();
200
- if (!strNode)
201
- return;
202
- const value = strNode.stringValue;
203
- const entry = stringMap.get(value);
204
- if (entry) {
205
- entry.count++;
206
- entry.totalSize += node.retainedSize;
207
- if (entry.exampleIds.length < 20) {
208
- entry.exampleIds.push(node.id);
209
- }
210
- }
211
- else {
212
- stringMap.set(value, {
213
- count: 1,
214
- totalSize: node.retainedSize,
215
- exampleIds: [node.id],
216
- });
217
- }
184
+ // Step 1: per-value string duplication index.
185
+ //
186
+ // Shared with memlab_duplicated_strings and cached per snapshot, so the
187
+ // two tools (routinely run back to back) walk the string nodes once
188
+ // between them rather than once each. The dev-root reachability pass is
189
+ // requested here because only this tool needs it: strings retained ONLY
190
+ // through a dev/automation root overwhelmingly the attached
191
+ // inspector's console holding dev-build log records — cannot be
192
+ // reclaimed by an intern pool in production, and counting them inflates
193
+ // the headline saving.
194
+ //
195
+ // `(concatenated string)` (cons/rope) nodes are counted by the same
196
+ // index: a heap dominated by them is string ACCUMULATION (repeated `+=`
197
+ // / join into a long-lived buffer), NOT value duplication, and
198
+ // interning cannot help. Flagging the pattern beats reporting a tiny
199
+ // interning win against it. (Feedback round 7 §4.)
200
+ const devRoots = collectDevRoots(snapshot);
201
+ const productionReachable = devRoots.byId.size > 0
202
+ ? computeReachableWithoutDevRoots(snapshot, devRoots)
203
+ : null;
204
+ const isDevOnlyNode = (node) => productionReachable != null &&
205
+ productionReachable[node.nodeIndex] === 0;
206
+ const stringIndex = buildStringIndex(snapshot, {
207
+ withDevOnly: true,
208
+ isDevOnlyNode,
218
209
  });
210
+ const stringMap = stringIndex.byValue;
211
+ const concatStringCount = stringIndex.concatStringCount;
212
+ const concatStringSize = stringIndex.concatStringSize;
219
213
  // Step 2: For duplicated strings, sample referrers to get property × shape
220
214
  const groupMap = new Map();
221
215
  for (const [value, stats] of stringMap) {
@@ -383,6 +377,8 @@ export function registerInternOpportunities(server) {
383
377
  const scaleFactor = stats.count / samplesProcessed;
384
378
  const trueCount = Math.round(dist.sampledCount * scaleFactor);
385
379
  const trueSize = stats.totalSize * (dist.sampledCount / samplesProcessed);
380
+ const devOnlyShare = stats.count > 0 ? stats.devOnlyCount / stats.count : 0;
381
+ const trueDevOnly = trueCount * devOnlyShare;
386
382
  const existing = groupMap.get(groupKey);
387
383
  if (existing) {
388
384
  const strEntry = existing.strings.get(value);
@@ -398,6 +394,7 @@ export function registerInternOpportunities(server) {
398
394
  }
399
395
  existing.totalCopies += trueCount;
400
396
  existing.totalSize += trueSize;
397
+ existing.devOnlyCopies += trueDevOnly;
401
398
  existing.groupSamples += dist.sampledCount;
402
399
  existing.coRetainedSamples += dist.coRetainedCount;
403
400
  if (!existing.coRetainedVia && dist.coRetainedVia) {
@@ -419,6 +416,7 @@ export function registerInternOpportunities(server) {
419
416
  strings: new Map([[value, { count: trueCount, size: trueSize }]]),
420
417
  totalCopies: trueCount,
421
418
  totalSize: trueSize,
419
+ devOnlyCopies: trueDevOnly,
422
420
  exampleParentId: dist.parentId,
423
421
  groupSamples: dist.sampledCount,
424
422
  coRetainedSamples: dist.coRetainedCount,
@@ -436,6 +434,12 @@ export function registerInternOpportunities(server) {
436
434
  let savingsIfInterned = 0;
437
435
  let savingsCappable = 0;
438
436
  let savingsOverCap = 0;
437
+ // Savings attributable to harness-injected string CONTENT. Compared
438
+ // against savingsIfInterned below rather than tripping on the first
439
+ // match, so one stray bridge string in an otherwise-app group does
440
+ // not relabel the whole group.
441
+ let savingsHarness = 0;
442
+ let harnessWhat;
439
443
  const topStrings = [];
440
444
  for (const [value, strStats] of g.strings) {
441
445
  if (strStats.count > 1) {
@@ -448,6 +452,16 @@ export function registerInternOpportunities(server) {
448
452
  savingsCappable += s;
449
453
  else
450
454
  savingsOverCap += s;
455
+ const nonProd = classifyNonProductionString(value);
456
+ if (nonProd != null) {
457
+ savingsHarness += s;
458
+ if (!harnessWhat) {
459
+ harnessWhat =
460
+ nonProd.kind === 'dev-build'
461
+ ? `${nonProd.what} — DEV build only, absent in production`
462
+ : nonProd.what;
463
+ }
464
+ }
451
465
  }
452
466
  topStrings.push({
453
467
  value,
@@ -462,6 +476,16 @@ export function registerInternOpportunities(server) {
462
476
  // another structure — interning the property alone reclaims ~0.
463
477
  const coRetained = g.coRetainedSamples > 0 &&
464
478
  g.coRetainedSamples >= g.groupSamples * 0.5;
479
+ // Harness by CONTENT (majority of the group's savings sits in
480
+ // bridge-injected strings) or by SHAPE (the parent is one of the
481
+ // bridge's tool-manifest entries, whose long `.description` strings a
482
+ // per-load pool would happily "save"). The shape test is what catches
483
+ // the manifest — its descriptions are ordinary English and no content
484
+ // signature can distinguish them from app copy.
485
+ const harnessShape = isHarnessToolManifestShape(g.parentShapeProps);
486
+ const harness = harnessShape ||
487
+ (savingsIfInterned > 0 &&
488
+ savingsHarness >= savingsIfInterned * 0.5);
465
489
  groups.push({
466
490
  propertyName: g.propertyName,
467
491
  parentShape: g.parentShapeKey,
@@ -479,6 +503,15 @@ export function registerInternOpportunities(server) {
479
503
  coRetainedVia: coRetained ? g.coRetainedVia : undefined,
480
504
  lowRoi: isLowRoiGroup(g.strings.size, g.totalCopies, g.totalSize),
481
505
  frameworkOwned: isFrameworkOwned(g.propertyName, g.parentShapeKey, g.parentShapeProps),
506
+ // Majority-dev-only rather than any-dev-only: a group can legitimately
507
+ // mix a few console-held copies with real app data, and only a group
508
+ // that is essentially all inspector-held should leave the headline.
509
+ devOnly: g.totalCopies > 0 && g.devOnlyCopies / g.totalCopies >= 0.8,
510
+ harness,
511
+ harnessWhat: harness
512
+ ? (harnessWhat ??
513
+ 'automation/devtools bridge tool manifest (.description strings)')
514
+ : undefined,
482
515
  });
483
516
  }
484
517
  groups.sort((a, b) => b.savingsIfInterned - a.savingsIfInterned);
@@ -513,7 +546,7 @@ export function registerInternOpportunities(server) {
513
546
  .join('\n');
514
547
  msg += `\n\n⚠ However, ${formatNumber(arrayDupes.length)} value(s) are heavily duplicated (~${formatBytes(totalDup)} total) but were NOT surfaced as property groups above. This is expected when they are held as ARRAY ELEMENTS / columnar rows (e.g. a string[][] query-result buffer) rather than object properties — but it can also happen when their property groups fell below the min_copies / min_savings thresholds. If they are array elements, interning at the array-construction (parse) site collapses them; if they are properties, lower the thresholds to surface the group. Top:\n${top}\nUse memlab_search_strings to locate where each is built and confirm how it is held.`;
515
548
  }
516
- return toolResult(msg);
549
+ return toolResult(withAnonymizedBanner(snapshot, msg));
517
550
  }
518
551
  // Detect partial interning patterns (Feedback #3) and, while we're here,
519
552
  // mark which groups' savings are CROSS-load (not capturable by a per-load
@@ -563,6 +596,15 @@ export function registerInternOpportunities(server) {
563
596
  // is retention-then-ROI; every non-`within` bucket is excluded from the
564
597
  // within-load headline regardless of which one a group lands in.
565
598
  const bucketOf = (g) => {
599
+ // Checked before everything else: harness content is not the
600
+ // application's memory at all — it is the rig injected to observe it —
601
+ // so no other classification of it is meaningful.
602
+ if (g.harness)
603
+ return 'harness';
604
+ // Retention through a dev root means interning reclaims nothing in
605
+ // production, whatever the property is named.
606
+ if (g.devOnly)
607
+ return 'devOnly';
566
608
  if (g.frameworkOwned)
567
609
  return 'framework';
568
610
  if (g.coRetained)
@@ -579,7 +621,9 @@ export function registerInternOpportunities(server) {
579
621
  const coRetainedSavings = sumBucket('coRetained');
580
622
  const crossLoadSavings = sumBucket('crossLoad');
581
623
  const frameworkSavings = sumBucket('framework');
624
+ const devOnlySavings = sumBucket('devOnly');
582
625
  const lowRoiSavings = sumBucket('lowRoi');
626
+ const harnessSavings = sumBucket('harness');
583
627
  const withinLoadSavings = sumBucket('within');
584
628
  // Within the capturable bucket, split by the canonical 128-char cap so the
585
629
  // headline reports what a COMPLIANT fix reclaims, not the raw total that
@@ -600,7 +644,9 @@ export function registerInternOpportunities(server) {
600
644
  crossLoadSavings +
601
645
  coRetainedSavings +
602
646
  frameworkSavings +
603
- lowRoiSavings;
647
+ devOnlySavings +
648
+ lowRoiSavings +
649
+ harnessSavings;
604
650
  const pctOf = (n) => totalSize > 0
605
651
  ? ` (${((n / totalSize) * 100).toFixed(1)}% of heap)`
606
652
  : '';
@@ -642,7 +688,7 @@ export function registerInternOpportunities(server) {
642
688
  // produce a malformed label, so only prefix `.` for named properties.
643
689
  const label = g.arrayElement ? g.propertyName : `.${g.propertyName}`;
644
690
  return [
645
- `${label}${g.arrayElement ? ' ▦' : ''}${g.coRetained ? ' ⚠' : ''}${g.crossLoad ? ' ⤫' : ''}${g.frameworkOwned ? ' ▤' : ''}${g.lowRoi ? ' ▽' : ''}`,
691
+ `${label}${g.arrayElement ? ' ▦' : ''}${g.coRetained ? ' ⚠' : ''}${g.crossLoad ? ' ⤫' : ''}${g.devOnly ? ' 🛠' : ''}${g.harness ? ' 🧪' : ''}${g.frameworkOwned ? ' ▤' : ''}${g.lowRoi ? ' ▽' : ''}`,
646
692
  shape,
647
693
  formatNumber(g.uniqueStrings),
648
694
  formatNumber(g.totalCopies),
@@ -707,18 +753,21 @@ export function registerInternOpportunities(server) {
707
753
  coRetainedSavings >= crossLoadSavings &&
708
754
  coRetainedSavings >= frameworkSavings &&
709
755
  coRetainedSavings >= lowRoiSavings &&
756
+ coRetainedSavings >= harnessSavings &&
710
757
  coRetainedSavings > 0) {
711
758
  verdict = `Verdict: mostly **co-retained** (${formatBytes(coRetainedSavings)}) — interning the property won't help; dedupe at the shared source.`;
712
759
  }
713
760
  else if (crossLoadSavings >= withinLoadSavings &&
714
761
  crossLoadSavings >= frameworkSavings &&
715
762
  crossLoadSavings >= lowRoiSavings &&
763
+ crossLoadSavings >= harnessSavings &&
716
764
  crossLoadSavings > 0) {
717
765
  verdict = `Verdict: mostly **cross-load** (${formatBytes(crossLoadSavings)}) — a per-request pool won't collapse it; needs a shared/module-scope pool or a retention fix.`;
718
766
  }
719
767
  else if (withinLoadSavings > 0 &&
720
768
  withinLoadSavings >= frameworkSavings &&
721
- withinLoadSavings >= lowRoiSavings) {
769
+ withinLoadSavings >= lowRoiSavings &&
770
+ withinLoadSavings >= harnessSavings) {
722
771
  // Lead with the ≤128-char cappable figure — the amount the canonical
723
772
  // intern fix actually reclaims — not the raw within-load total that also
724
773
  // counts over-cap strings the fix skips (feedback §3).
@@ -730,11 +779,15 @@ export function registerInternOpportunities(server) {
730
779
  : '';
731
780
  verdict = `Verdict: **${formatBytes(withinCappable)} cappable** by the canonical ≤${CANONICAL_CAP_CHARS}-char per-load/per-request intern pool at the parse boundary${capNote}.${columnarNote}`;
732
781
  }
733
- else if (frameworkSavings + lowRoiSavings > 0) {
734
- // Framework/low-ROI dominate (each ≥ the within-load figure). Lead with
735
- // them so a small capturable remainder isn't mistaken for the headline,
736
- // but still name that remainder when nonzero so it isn't hidden.
782
+ else if (frameworkSavings + lowRoiSavings + harnessSavings > 0) {
783
+ // Framework/low-ROI/harness dominate (each ≥ the within-load figure).
784
+ // Lead with them so a small capturable remainder isn't mistaken for the
785
+ // headline, but still name that remainder when nonzero so it isn't
786
+ // hidden.
737
787
  const parts = [];
788
+ if (harnessSavings > 0) {
789
+ parts.push('measurement-harness content (the injected automation/devtools bridge — not application memory)');
790
+ }
738
791
  if (frameworkSavings > 0) {
739
792
  parts.push('framework/infra-owned (headers/cookies/tokens)');
740
793
  }
@@ -777,6 +830,17 @@ export function registerInternOpportunities(server) {
777
830
  if (frameworkSavings > 0) {
778
831
  headerLines.push(`- **▤ Framework/infra-owned (HTTP headers, cookies, auth tokens, Next.js URL/cache context — not app data; out of scope for an app-level intern pool): ${formatBytes(frameworkSavings)}${pctOf(frameworkSavings)}**`);
779
832
  }
833
+ if (devOnlySavings > 0) {
834
+ headerLines.push(`- **🛠 Dev/automation-retained (held only via the attached inspector's console or another dev root — reclaims NOTHING in production; do not chase): ${formatBytes(devOnlySavings)}${pctOf(devOnlySavings)}**`);
835
+ }
836
+ if (harnessSavings > 0) {
837
+ const whats = [
838
+ ...new Set(shown
839
+ .filter(g => g.harness && g.harnessWhat)
840
+ .map(g => g.harnessWhat)),
841
+ ];
842
+ headerLines.push(`- **🧪 Measurement-harness content (${whats.join('; ')}) — the CDP/devtools bridge injected into the page to drive this session, NOT application memory; interning it reclaims nothing in production: ${formatBytes(harnessSavings)}${pctOf(harnessSavings)}**`);
843
+ }
780
844
  if (lowRoiSavings > 0) {
781
845
  headerLines.push(`- **▽ Low-ROI (high-cardinality, few repeats + long strings — a per-load pool retains a large unique set for a small collapse; usually skip): ${formatBytes(lowRoiSavings)}${pctOf(lowRoiSavings)}**`);
782
846
  }
@@ -794,9 +858,11 @@ export function registerInternOpportunities(server) {
794
858
  if (coRetainedGroups.length > 0 ||
795
859
  crossLoadSavings > 0 ||
796
860
  frameworkSavings > 0 ||
861
+ devOnlySavings > 0 ||
862
+ harnessSavings > 0 ||
797
863
  lowRoiSavings > 0 ||
798
864
  hasArrayElement) {
799
- lines.push("▦ = array element (columnar / rowsAsArray — intern at the parse site); ⚠ = co-retained (interning won't reclaim); ⤫ = cross-load (high Dup ×, needs shared pool); ▤ = framework/infra-owned (not app data); ▽ = low-ROI (high-cardinality + long; usually skip).", '');
865
+ lines.push("▦ = array element (columnar / rowsAsArray — intern at the parse site); ⚠ = co-retained (interning won't reclaim); ⤫ = cross-load (high Dup ×, needs shared pool); ▤ = framework/infra-owned (not app data); 🛠 = dev/automation-retained (inspector console — reclaims nothing in production); 🧪 = measurement-harness content (injected automation/devtools bridge — not app memory); ▽ = low-ROI (high-cardinality + long; usually skip).", '');
800
866
  }
801
867
  // Triage mode: stop after the headline split + ranked table. Drops the
802
868
  // per-group string lists, partial-interning detail, and the fix recipe
@@ -811,7 +877,7 @@ export function registerInternOpportunities(server) {
811
877
  : g.parentShape;
812
878
  lines.push(`- ⚠ \`.${g.propertyName}\` on \`${shape}\` — ${formatBytes(g.savingsIfInterned)} co-retained via **${g.coRetainedVia ?? 'another structure'}**`);
813
879
  }
814
- return toolResult(lines.join('\n'));
880
+ return toolResult(withAnonymizedBanner(snapshot, lines.join('\n')));
815
881
  }
816
882
  // Co-retained groups: interning the property frees ~0 (Feedback round 4 §1).
817
883
  if (coRetainedGroups.length > 0) {
@@ -860,7 +926,7 @@ export function registerInternOpportunities(server) {
860
926
  ]
861
927
  : []));
862
928
  }
863
- return toolResult(lines.join('\n'));
929
+ return toolResult(withAnonymizedBanner(snapshot, lines.join('\n')));
864
930
  }
865
931
  catch (err) {
866
932
  return errorResult(err);
@@ -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"}