@petukhovart/agent-view 0.13.1 → 0.15.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 (65) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +21 -21
  3. package/LICENSE +21 -21
  4. package/README.md +82 -3
  5. package/dist/cdp/transport.d.ts.map +1 -1
  6. package/dist/cdp/transport.js +154 -15
  7. package/dist/cdp/transport.js.map +1 -1
  8. package/dist/cdp/types.d.ts +56 -0
  9. package/dist/cdp/types.d.ts.map +1 -1
  10. package/dist/cdp/types.js.map +1 -1
  11. package/dist/cli/commands/click.d.ts +1 -0
  12. package/dist/cli/commands/click.d.ts.map +1 -1
  13. package/dist/cli/commands/click.js +2 -0
  14. package/dist/cli/commands/click.js.map +1 -1
  15. package/dist/cli/commands/coverage.d.ts +14 -0
  16. package/dist/cli/commands/coverage.d.ts.map +1 -0
  17. package/dist/cli/commands/coverage.js +34 -0
  18. package/dist/cli/commands/coverage.js.map +1 -0
  19. package/dist/cli/commands/heap.d.ts +14 -0
  20. package/dist/cli/commands/heap.d.ts.map +1 -0
  21. package/dist/cli/commands/heap.js +25 -0
  22. package/dist/cli/commands/heap.js.map +1 -0
  23. package/dist/cli/commands/listeners.d.ts +11 -0
  24. package/dist/cli/commands/listeners.d.ts.map +1 -0
  25. package/dist/cli/commands/listeners.js +34 -0
  26. package/dist/cli/commands/listeners.js.map +1 -0
  27. package/dist/cli/index.js +92 -0
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/inspectors/coverage/index.d.ts +17 -0
  30. package/dist/inspectors/coverage/index.d.ts.map +1 -0
  31. package/dist/inspectors/coverage/index.js +62 -0
  32. package/dist/inspectors/coverage/index.js.map +1 -0
  33. package/dist/inspectors/format.d.ts +6 -0
  34. package/dist/inspectors/format.d.ts.map +1 -0
  35. package/dist/inspectors/format.js +17 -0
  36. package/dist/inspectors/format.js.map +1 -0
  37. package/dist/inspectors/heap/index.d.ts +65 -0
  38. package/dist/inspectors/heap/index.d.ts.map +1 -0
  39. package/dist/inspectors/heap/index.js +269 -0
  40. package/dist/inspectors/heap/index.js.map +1 -0
  41. package/dist/inspectors/listeners/index.d.ts +4 -0
  42. package/dist/inspectors/listeners/index.d.ts.map +1 -0
  43. package/dist/inspectors/listeners/index.js +30 -0
  44. package/dist/inspectors/listeners/index.js.map +1 -0
  45. package/dist/server/server.d.ts +21 -0
  46. package/dist/server/server.d.ts.map +1 -1
  47. package/dist/server/server.js +150 -9
  48. package/dist/server/server.js.map +1 -1
  49. package/package.json +2 -1
  50. package/skills/verify/SKILL.md +163 -427
  51. package/skills/verify/references/commands.md +384 -0
  52. package/skills/verify/references/design-conformance.md +23 -0
  53. package/skills/verify/references/memory-leaks.md +94 -0
  54. package/dist/cdp/console-stream.d.ts +0 -35
  55. package/dist/cdp/console-stream.d.ts.map +0 -1
  56. package/dist/cdp/console-stream.js +0 -103
  57. package/dist/cdp/console-stream.js.map +0 -1
  58. package/dist/inspectors/dom.d.ts +0 -17
  59. package/dist/inspectors/dom.d.ts.map +0 -1
  60. package/dist/inspectors/dom.js +0 -131
  61. package/dist/inspectors/dom.js.map +0 -1
  62. package/dist/inspectors/scene/pixi.d.ts +0 -3
  63. package/dist/inspectors/scene/pixi.d.ts.map +0 -1
  64. package/dist/inspectors/scene/pixi.js +0 -52
  65. package/dist/inspectors/scene/pixi.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/heap/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAA;AA+ChE,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAA;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC7B,MAAM,KAAK,GAAc;QACvB,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;QACvC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;QACvC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7B,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5C,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;QAClD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;QAChD,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KACzC,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC5C,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAA;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,cAAc,CAAA;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtB,SAAS,IAAI,IAAI,CAAA;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,CAAY,EAAE,GAAW;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO,IAAI,CAAA;YACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAA;YAC5E,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACjD,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAA;QACzC,KAAK,QAAQ,CAAC;QACd,KAAK,qBAAqB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,UAAU,CAAA;QACnB,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAA;QAC1B;YACE,OAAO,IAAI,IAAI,GAAG,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AACxC,CAAC;AAQD,SAAS,IAAI,CAAC,GAAW,EAAE,OAAoB;IAC7C,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3D,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7F,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAe;IAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACvC,OAAO,aAAa,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;UACnG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAA;AACnF,CAAC;AAED,SAAS,WAAW,CAAC,OAA+B;IAClD,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;YAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAe,EAAE,UAAuB,EAAE;IACtE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACvG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAA;IAC7F,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAC1C,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CACtE,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAe,EAAE,CAAe,EAAE,UAAuB,EAAE;IACpF,MAAM,IAAI,GAA4C,EAAE,CAAA;IACxD,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,SAAQ;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACtC,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9F,OAAO,8BAA8B,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAA;IACzE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,MAAM,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU;UAC9F,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;IACpI,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAC3B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACrF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,CAAe,EAAE,GAAW,EAAE,UAAyC,EAAE;IACvG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAA;IACjB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAA;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QAC5B,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAAC,CAAC;QACpE,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACxF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC3C,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC9C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,CAAC,CAAA;IACD,qEAAqE;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IAC1D,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAA;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;YAAE,SAAS,EAAE,CAAA;QACnC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YAChE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,SAAQ;YACjD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,SAAQ;YACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;gBACnC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBAClC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAE/F,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,qBAAqB,GAAG,SAAS,CAAC,CAAC,IAAI,IAAI,CAAA;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,wCAAwC,CAAA;IAChH,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5F,MAAM,KAAK,GAAG;QACZ,GAAG,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,iBAAiB;QAC7D,GAAG,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5E,CAAA;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,CAAY,EACZ,OAA6C,EAC7C,OAAiC,EACjC,IAAY,EACZ,SAAkE;IAElE,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAA;IACnD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmC,CAAA;QACvD,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAA;YAChC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBAChE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;oBAAE,SAAQ;gBACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAClD,IAAI,CAAC,IAAI;oBAAE,SAAQ;gBACnB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACpD,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI;wBAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBACzD,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACrF,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO;QAAE,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI;YAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAyB;IAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,2BAA2B,CAAA;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,OAAoB;IAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,MAAgB,EAAE,IAAgB;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtF,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/G,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,KAAK,GAAG,KAAK;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { EventListenerInfo } from '../../cdp/types.js';
2
+ /** `label` echoes how the node was addressed, so the output names what it describes. */
3
+ export declare function formatListeners(label: string, listeners: EventListenerInfo[]): string;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspectors/listeners/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAgB3D,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAcrF"}
@@ -0,0 +1,30 @@
1
+ function flags(l) {
2
+ const set = [];
3
+ if (l.useCapture)
4
+ set.push('capture');
5
+ if (l.passive)
6
+ set.push('passive');
7
+ if (l.once)
8
+ set.push('once');
9
+ return set.length > 0 ? ` (${set.join(', ')})` : '';
10
+ }
11
+ /** `scriptId` is the fallback: a script parsed after the last scan has no URL yet. */
12
+ function location(l) {
13
+ const source = l.url || `scriptId:${l.scriptId}`;
14
+ return `${source}:${l.lineNumber + 1}:${l.columnNumber + 1}`;
15
+ }
16
+ /** `label` echoes how the node was addressed, so the output names what it describes. */
17
+ export function formatListeners(label, listeners) {
18
+ const lines = [label];
19
+ if (listeners.length === 0) {
20
+ lines.push(' (no listeners on this node)');
21
+ return lines.join('\n');
22
+ }
23
+ const sorted = [...listeners].sort((a, b) => a.type.localeCompare(b.type) || location(a).localeCompare(location(b)));
24
+ const width = Math.min(16, Math.max(...sorted.map((l) => l.type.length)));
25
+ for (const l of sorted) {
26
+ lines.push(` ${l.type.padEnd(width)} ${location(l)}${flags(l)}`);
27
+ }
28
+ return lines.join('\n');
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/listeners/index.ts"],"names":[],"mappings":"AAEA,SAAS,KAAK,CAAC,CAAoB;IACjC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,CAAC,CAAC,UAAU;QAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,IAAI,CAAC,CAAC,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClC,IAAI,CAAC,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AACtD,CAAC;AAED,sFAAsF;AACtF,SAAS,QAAQ,CAAC,CAAoB;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IAChD,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,SAA8B;IAC3E,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IAErB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACzE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
@@ -30,6 +30,8 @@ export declare class AgentViewServer {
30
30
  private idleTimer;
31
31
  private sceneCache;
32
32
  private domTextCache;
33
+ /** Named, insertion-ordered; dropped with the server. Raw JSON is never kept, only the parsed graph. */
34
+ private heapSnapshots;
33
35
  private axTreeCache;
34
36
  private portStates;
35
37
  private token;
@@ -91,6 +93,25 @@ export declare class AgentViewServer {
91
93
  */
92
94
  private armFileChooser;
93
95
  private readTauriShimStatus;
96
+ /**
97
+ * Forward reachability. `--clear` opens a coverage window, the next call closes
98
+ * it and reports what ran inside — so a click can be attributed to the functions
99
+ * it actually executed. Purchases only positive answers: an empty delta proves
100
+ * that *this* action did not reach the code, never that nothing can.
101
+ */
102
+ private handleCoverage;
103
+ /**
104
+ * Memory growth between named snapshots. `take` parses the snapshot inside
105
+ * the server and keeps only the graph, so the multi-hundred-MB JSON never
106
+ * reaches the CLI. `diff` without names compares the two most recent.
107
+ */
108
+ private handleHeap;
109
+ /** `s1`, `s2`, … skipping names already taken by hand. */
110
+ private freeHeapSnapshotName;
111
+ /** Named snapshot, or the most recent one. Throws the user-facing error; the dispatcher turns it into `{ ok: false }`. */
112
+ private pickHeapSnapshot;
113
+ /** Which handlers are wired to a node, and where each was declared. */
114
+ private handleListeners;
94
115
  private handleWait;
95
116
  private captureScreenshotToFile;
96
117
  private handleScreenshot;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ import { ConsoleStream } from '../cdp/_tests/console-stream.js';
18
18
  import { NetworkStream } from '../cdp/network-stream.js';
19
19
  import { formatNetworkList, formatNetworkDetail } from '../inspectors/network/index.js';
20
20
  import { formatDialogStatus, describePolicy, describeArm } from '../inspectors/dialog/index.js';
21
+ import { formatCoverage } from '../inspectors/coverage/index.js';
22
+ import { formatListeners } from '../inspectors/listeners/index.js';
23
+ import { parseHeapSnapshot, describeSnapshot, formatSummary, formatDiff, formatRetainers, formatList } from '../inspectors/heap/index.js';
24
+ import { formatBytes } from '../inspectors/format.js';
21
25
  import { buildTauriArmScript, buildTauriStatusScript, TauriShimResult } from './tauri-dialog-shim.js';
22
26
  import { NetworkResourceType } from '../cdp/types.js';
23
27
  import { AxTreeCache } from '../cdp/ax-cache.js';
@@ -163,6 +167,8 @@ export class AgentViewServer {
163
167
  idleTimer = null;
164
168
  sceneCache = new Map();
165
169
  domTextCache = new Map();
170
+ /** Named, insertion-ordered; dropped with the server. Raw JSON is never kept, only the parsed graph. */
171
+ heapSnapshots = new Map();
166
172
  axTreeCache = new AxTreeCache();
167
173
  portStates = new Map();
168
174
  token = '';
@@ -185,6 +191,9 @@ export class AgentViewServer {
185
191
  logs: (req) => this.handleLogs(req),
186
192
  upload: (req) => this.handleUpload(req),
187
193
  dialog: (req) => this.handleDialog(req),
194
+ coverage: (req) => this.handleCoverage(req),
195
+ listeners: (req) => this.handleListeners(req),
196
+ heap: (req) => this.handleHeap(req),
188
197
  stop: () => this.handleStop(),
189
198
  };
190
199
  streamingCommands = new Set(['watch']);
@@ -612,8 +621,11 @@ export class AgentViewServer {
612
621
  const conn = await this.getPageSession(req, targetId);
613
622
  const cacheKey = `${req.port}:${targetId}`;
614
623
  const clicks = argBool(req.args, 'double') ? 2 : 1;
615
- const clickOpts = clicks > 1 ? { clicks } : undefined;
616
- const verb = clicks > 1 ? 'Double-clicked' : 'Clicked';
624
+ const right = argBool(req.args, 'right');
625
+ const clickOpts = clicks > 1 || right
626
+ ? { ...(clicks > 1 ? { clicks } : {}), ...(right ? { button: MouseButton.Right } : {}) }
627
+ : undefined;
628
+ const verb = right ? 'Right-clicked' : clicks > 1 ? 'Double-clicked' : 'Clicked';
617
629
  if (req.args.pos && typeof req.args.pos === 'object') {
618
630
  const pos = req.args.pos;
619
631
  const x = typeof pos.x === 'number' ? pos.x : 0;
@@ -878,6 +890,142 @@ export class AgentViewServer {
878
890
  return { patched: false, armed: false, fired: [] };
879
891
  }
880
892
  }
893
+ /**
894
+ * Forward reachability. `--clear` opens a coverage window, the next call closes
895
+ * it and reports what ran inside — so a click can be attributed to the functions
896
+ * it actually executed. Purchases only positive answers: an empty delta proves
897
+ * that *this* action did not reach the code, never that nothing can.
898
+ */
899
+ async handleCoverage(req) {
900
+ const target = await this.resolveTarget(req);
901
+ const conn = await this.getRuntimeSession(req, target);
902
+ if (argBool(req.args, 'clear')) {
903
+ await conn.startCoverage();
904
+ return { ok: true, data: 'Coverage window cleared' };
905
+ }
906
+ const scripts = await conn.takeCoverage();
907
+ if (scripts === null) {
908
+ return {
909
+ ok: false,
910
+ error: 'No coverage window open. Run `agent-view coverage --clear` before the action you want to attribute.',
911
+ };
912
+ }
913
+ const result = formatCoverage(scripts, {
914
+ filter: argStr(req.args, 'filter'),
915
+ file: argStr(req.args, 'file'),
916
+ all: argBool(req.args, 'all'),
917
+ maxLines: argNum(req.args, 'maxLines'),
918
+ });
919
+ if (argBool(req.args, 'count'))
920
+ return { ok: true, data: String(result.functions) };
921
+ return { ok: true, data: result.text };
922
+ }
923
+ /**
924
+ * Memory growth between named snapshots. `take` parses the snapshot inside
925
+ * the server and keeps only the graph, so the multi-hundred-MB JSON never
926
+ * reaches the CLI. `diff` without names compares the two most recent.
927
+ */
928
+ async handleHeap(req) {
929
+ const action = argStr(req.args, 'action');
930
+ const listOptions = () => ({
931
+ filter: argStr(req.args, 'filter'),
932
+ detached: argBool(req.args, 'detached'),
933
+ maxLines: argNum(req.args, 'maxLines'),
934
+ });
935
+ switch (action) {
936
+ case 'take': {
937
+ const target = await this.resolveTarget(req);
938
+ const conn = await this.getRuntimeSession(req, target);
939
+ const name = argStr(req.args, 'name') ?? this.freeHeapSnapshotName();
940
+ const json = await conn.takeHeapSnapshot();
941
+ const label = `${target.type}:${target.title || target.url}`;
942
+ const snapshot = parseHeapSnapshot(json, name, label);
943
+ // Re-taking a name moves it to the end: "most recent" is insertion order, and `diff` defaults to the last two.
944
+ this.heapSnapshots.delete(name);
945
+ this.heapSnapshots.set(name, snapshot);
946
+ return { ok: true, data: describeSnapshot(snapshot) };
947
+ }
948
+ case 'summary':
949
+ return { ok: true, data: formatSummary(this.pickHeapSnapshot(argStr(req.args, 'name')), listOptions()) };
950
+ case 'diff': {
951
+ const names = argStrArray(req.args, 'names') ?? [...this.heapSnapshots.keys()].slice(-2);
952
+ if (names.length < 2) {
953
+ return { ok: false, error: 'heap diff needs two snapshots. Run `agent-view heap take` twice, or name them: `heap diff <a> <b>`.' };
954
+ }
955
+ const [a, b] = names.map((n) => this.pickHeapSnapshot(n));
956
+ return { ok: true, data: formatDiff(a, b, listOptions()) };
957
+ }
958
+ case 'retainers': {
959
+ const cls = argStr(req.args, 'class');
960
+ if (!cls)
961
+ return { ok: false, error: 'heap retainers requires a class name, as printed by `heap diff`' };
962
+ const snapshot = this.pickHeapSnapshot(argStr(req.args, 'name'));
963
+ return { ok: true, data: formatRetainers(snapshot, cls, listOptions()) };
964
+ }
965
+ case 'list':
966
+ return { ok: true, data: formatList([...this.heapSnapshots.values()]) };
967
+ case 'clear': {
968
+ const n = this.heapSnapshots.size;
969
+ this.heapSnapshots.clear();
970
+ return { ok: true, data: `Dropped ${n} heap snapshot${n === 1 ? '' : 's'}` };
971
+ }
972
+ default:
973
+ return { ok: false, error: `Unknown heap action: ${action}` };
974
+ }
975
+ }
976
+ /** `s1`, `s2`, … skipping names already taken by hand. */
977
+ freeHeapSnapshotName() {
978
+ for (let i = this.heapSnapshots.size + 1;; i++) {
979
+ if (!this.heapSnapshots.has(`s${i}`))
980
+ return `s${i}`;
981
+ }
982
+ }
983
+ /** Named snapshot, or the most recent one. Throws the user-facing error; the dispatcher turns it into `{ ok: false }`. */
984
+ pickHeapSnapshot(name) {
985
+ if (name === undefined) {
986
+ const last = [...this.heapSnapshots.values()].at(-1);
987
+ if (!last)
988
+ throw new Error('No heap snapshots taken. Run `agent-view heap take` first.');
989
+ return last;
990
+ }
991
+ const found = this.heapSnapshots.get(name);
992
+ if (!found) {
993
+ const taken = [...this.heapSnapshots.keys()].map(k => `"${k}"`).join(', ') || 'none';
994
+ throw new Error(`No heap snapshot named "${name}". Taken: ${taken}.`);
995
+ }
996
+ return found;
997
+ }
998
+ /** Which handlers are wired to a node, and where each was declared. */
999
+ async handleListeners(req) {
1000
+ const { targetId } = await this.resolveWindow(req);
1001
+ const conn = await this.getPageSession(req, targetId);
1002
+ const depth = argNum(req.args, 'depth') ?? 0;
1003
+ const selector = argStr(req.args, 'selector');
1004
+ if (selector) {
1005
+ const listeners = await conn.getEventListenersBySelector(selector, depth);
1006
+ if (listeners === null)
1007
+ return { ok: false, error: `No element matches selector "${selector}"` };
1008
+ return { ok: true, data: formatListeners(`"${selector}"`, listeners) };
1009
+ }
1010
+ const filter = argStr(req.args, 'filter');
1011
+ if (filter) {
1012
+ const found = await this.findByFilter(conn, filter, req, targetId);
1013
+ if (!found)
1014
+ return { ok: false, error: `No element found matching "${filter}"` };
1015
+ const listeners = await conn.getEventListeners(found.backendDOMNodeId, depth);
1016
+ return { ok: true, data: formatListeners(`"${found.name}"`, listeners) };
1017
+ }
1018
+ const ref = argNum(req.args, 'ref');
1019
+ if (ref === undefined) {
1020
+ return { ok: false, error: 'listeners requires --filter, --ref, or --selector' };
1021
+ }
1022
+ const entry = this.refStore.get(ref);
1023
+ if (!entry) {
1024
+ return { ok: false, error: `Invalid ref: ${ref}. Run \`agent-view dom\` to get fresh refs.` };
1025
+ }
1026
+ const listeners = await conn.getEventListeners(entry.backendDOMNodeId, depth);
1027
+ return { ok: true, data: formatListeners(`[ref=${ref}]`, listeners) };
1028
+ }
881
1029
  async handleWait(req) {
882
1030
  const filter = argStr(req.args, 'filter');
883
1031
  if (!filter) {
@@ -1704,13 +1852,6 @@ function formatIdleFeed(file) {
1704
1852
  'start with `agent-view logs start` — `logs tail` still reads the existing feed',
1705
1853
  ].join('\n');
1706
1854
  }
1707
- function formatBytes(bytes) {
1708
- if (bytes < 1024)
1709
- return `${bytes} B`;
1710
- if (bytes < 1024 * 1024)
1711
- return `${(bytes / 1024).toFixed(1)} KB`;
1712
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
1713
- }
1714
1855
  function formatElapsed(ms) {
1715
1856
  const total = Math.max(0, Math.round(ms / 1000));
1716
1857
  const h = Math.floor(total / 3600);