@heal-dev/heal-playwright-tracer 1.0.0 → 1.0.8

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 (704) hide show
  1. package/README.md +94 -116
  2. package/dist/application/babel-playwright-tracer-plugin/index.js +16 -2
  3. package/dist/application/commander-cli-adapter/commander-cli-adapter.d.ts +24 -0
  4. package/dist/application/commander-cli-adapter/commander-cli-adapter.js +133 -0
  5. package/dist/application/heal-config/index.d.ts +1 -1
  6. package/dist/application/heal-config/registry.js +2 -1
  7. package/dist/application/heal-config/types.d.ts +187 -6
  8. package/dist/application/playwright-fixture/index.js +247 -48
  9. package/dist/application/playwright-fixture/wire-all-pages.d.ts +37 -0
  10. package/dist/application/playwright-fixture/wire-all-pages.js +71 -0
  11. package/dist/application/trace-event-recorder-runtime/index.d.ts +5 -0
  12. package/dist/application/trace-event-recorder-runtime/index.js +11 -1
  13. package/dist/bin/heal-tracer.d.ts +7 -0
  14. package/dist/bin/heal-tracer.js +16 -0
  15. package/dist/domain/code-hook-injector/service/statement-analysis/async-enclosing-function-detector.d.ts +11 -0
  16. package/dist/domain/code-hook-injector/service/statement-analysis/async-enclosing-function-detector.js +21 -0
  17. package/dist/domain/code-hook-injector/service/trace-hook/preprocess-call.d.ts +10 -0
  18. package/dist/domain/code-hook-injector/service/trace-hook/preprocess-call.js +17 -0
  19. package/dist/domain/persistence/execution-history-schema.d.ts +112 -0
  20. package/dist/domain/persistence/execution-history-schema.js +10 -0
  21. package/dist/domain/persistence/index.d.ts +7 -0
  22. package/dist/domain/persistence/index.js +10 -0
  23. package/dist/domain/persistence/test-status.d.ts +6 -0
  24. package/dist/domain/persistence/test-status.js +7 -0
  25. package/dist/domain/trace-event-recorder/model/console-trace-schema.d.ts +36 -0
  26. package/dist/domain/trace-event-recorder/model/console-trace-schema.js +7 -0
  27. package/dist/domain/trace-event-recorder/model/global-names.d.ts +1 -0
  28. package/dist/domain/trace-event-recorder/model/global-names.js +9 -1
  29. package/dist/domain/trace-event-recorder/model/network-trace-schema.d.ts +105 -0
  30. package/dist/domain/trace-event-recorder/model/network-trace-schema.js +7 -0
  31. package/dist/domain/trace-event-recorder/model/statement-trace-schema.d.ts +68 -2
  32. package/dist/domain/trace-event-recorder/model/statement-trace-schema.js +1 -1
  33. package/dist/domain/trace-event-recorder/model/trace-schema.d.ts +1 -0
  34. package/dist/domain/trace-event-recorder/service/projectors/statement-projector.d.ts +10 -1
  35. package/dist/domain/trace-event-recorder/service/projectors/statement-projector.js +39 -3
  36. package/dist/domain/trace-event-recorder/service/serializers/error-serializer.js +28 -10
  37. package/dist/domain/trace-event-recorder/service/serializers/index.d.ts +7 -0
  38. package/dist/domain/trace-event-recorder/service/serializers/index.js +13 -0
  39. package/dist/domain/trace-event-recorder/service/trace-event-recorder.d.ts +25 -0
  40. package/dist/domain/trace-event-recorder/service/trace-event-recorder.js +33 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/infrastructure/artifact-summary-printer/artifact-summary-printer.d.ts +20 -0
  43. package/dist/infrastructure/artifact-summary-printer/artifact-summary-printer.js +24 -0
  44. package/dist/infrastructure/artifact-summary-printer/index.d.ts +7 -0
  45. package/dist/infrastructure/artifact-summary-printer/index.js +10 -0
  46. package/dist/infrastructure/heal-reporter/crash-error-classifier.d.ts +13 -0
  47. package/dist/infrastructure/heal-reporter/crash-error-classifier.js +65 -0
  48. package/dist/infrastructure/heal-reporter/failing-statement-finder.d.ts +14 -0
  49. package/dist/infrastructure/heal-reporter/failing-statement-finder.js +118 -0
  50. package/dist/infrastructure/heal-reporter/heal-tracer-reporter.d.ts +134 -0
  51. package/dist/infrastructure/heal-reporter/heal-tracer-reporter.js +537 -0
  52. package/dist/infrastructure/heal-reporter/index.d.ts +14 -0
  53. package/dist/infrastructure/heal-reporter/index.js +23 -0
  54. package/dist/infrastructure/heal-reporter/ndjson-tail-inspector.d.ts +8 -0
  55. package/dist/infrastructure/heal-reporter/ndjson-tail-inspector.js +75 -0
  56. package/dist/infrastructure/heal-traces-layout/execution-id-resolver.d.ts +14 -0
  57. package/dist/infrastructure/heal-traces-layout/execution-id-resolver.js +52 -0
  58. package/dist/infrastructure/heal-traces-layout/heal-traces-layout.d.ts +37 -0
  59. package/dist/infrastructure/heal-traces-layout/heal-traces-layout.js +116 -0
  60. package/dist/infrastructure/heal-traces-layout/index.d.ts +7 -0
  61. package/dist/infrastructure/heal-traces-layout/index.js +14 -0
  62. package/dist/infrastructure/local-viewer-adapter/discover-traces.d.ts +70 -0
  63. package/dist/infrastructure/local-viewer-adapter/discover-traces.js +280 -0
  64. package/dist/infrastructure/local-viewer-adapter/local-viewer-server.d.ts +44 -0
  65. package/dist/infrastructure/local-viewer-adapter/local-viewer-server.js +398 -0
  66. package/dist/infrastructure/local-viewer-adapter/ndjson-trace-loader.d.ts +25 -0
  67. package/dist/infrastructure/local-viewer-adapter/ndjson-trace-loader.js +74 -0
  68. package/dist/infrastructure/playwright-console-capture-adapter/console-capture-session.d.ts +40 -0
  69. package/dist/infrastructure/playwright-console-capture-adapter/console-capture-session.js +243 -0
  70. package/dist/infrastructure/playwright-console-capture-adapter/index.d.ts +7 -0
  71. package/dist/infrastructure/playwright-console-capture-adapter/index.js +20 -0
  72. package/dist/infrastructure/playwright-locator-screenshot-adapter/assertion-wrapper.js +22 -9
  73. package/dist/infrastructure/playwright-locator-screenshot-adapter/index.d.ts +1 -1
  74. package/dist/infrastructure/playwright-locator-screenshot-adapter/index.js +2 -2
  75. package/dist/infrastructure/playwright-locator-screenshot-adapter/locator-patch.js +19 -7
  76. package/dist/infrastructure/playwright-locator-screenshot-adapter/overlay-helpers.d.ts +2 -2
  77. package/dist/infrastructure/playwright-locator-screenshot-adapter/overlay-helpers.js +22 -9
  78. package/dist/infrastructure/playwright-locator-screenshot-adapter/screenshot-capture-session.d.ts +14 -3
  79. package/dist/infrastructure/playwright-locator-screenshot-adapter/screenshot-capture-session.js +94 -25
  80. package/dist/infrastructure/playwright-network-capture-adapter/body-preview.d.ts +43 -0
  81. package/dist/infrastructure/playwright-network-capture-adapter/body-preview.js +107 -0
  82. package/dist/infrastructure/playwright-network-capture-adapter/index.d.ts +10 -0
  83. package/dist/infrastructure/playwright-network-capture-adapter/index.js +27 -0
  84. package/dist/infrastructure/playwright-network-capture-adapter/network-capture-session.d.ts +55 -0
  85. package/dist/infrastructure/playwright-network-capture-adapter/network-capture-session.js +630 -0
  86. package/dist/infrastructure/playwright-network-capture-adapter/network-coalescer.d.ts +54 -0
  87. package/dist/infrastructure/playwright-network-capture-adapter/network-coalescer.js +96 -0
  88. package/dist/infrastructure/playwright-network-capture-adapter/redaction.d.ts +14 -0
  89. package/dist/infrastructure/playwright-network-capture-adapter/redaction.js +44 -0
  90. package/dist/infrastructure/playwright-test-context-adapter/playwright-test-context-adapter.d.ts +6 -1
  91. package/dist/infrastructure/playwright-test-context-adapter/playwright-test-context-adapter.js +5 -1
  92. package/dist/infrastructure/stdout-capture-adapter/stdout-capture-session.js +1 -1
  93. package/dist/util/logger.d.ts +17 -0
  94. package/dist/util/logger.js +60 -0
  95. package/dist/util/with-timeout.d.ts +6 -0
  96. package/dist/util/with-timeout.js +33 -0
  97. package/package.json +20 -3
  98. package/tracer-viewer-bundle/assets/abap-BdImnpbu.js +13 -0
  99. package/tracer-viewer-bundle/assets/abap-BdImnpbu.js.map +1 -0
  100. package/tracer-viewer-bundle/assets/actionscript-3-CoDkCxhg.js +13 -0
  101. package/tracer-viewer-bundle/assets/actionscript-3-CoDkCxhg.js.map +1 -0
  102. package/tracer-viewer-bundle/assets/ada-bCR0ucgS.js +13 -0
  103. package/tracer-viewer-bundle/assets/ada-bCR0ucgS.js.map +1 -0
  104. package/tracer-viewer-bundle/assets/andromeeda-C4gqWexZ.js +12 -0
  105. package/tracer-viewer-bundle/assets/andromeeda-C4gqWexZ.js.map +1 -0
  106. package/tracer-viewer-bundle/assets/angular-html-DA-rfuFy.js +41 -0
  107. package/tracer-viewer-bundle/assets/angular-html-DA-rfuFy.js.map +1 -0
  108. package/tracer-viewer-bundle/assets/angular-ts-BrjP3tb8.js +30 -0
  109. package/tracer-viewer-bundle/assets/angular-ts-BrjP3tb8.js.map +1 -0
  110. package/tracer-viewer-bundle/assets/apache-Pmp26Uib.js +13 -0
  111. package/tracer-viewer-bundle/assets/apache-Pmp26Uib.js.map +1 -0
  112. package/tracer-viewer-bundle/assets/apex-D8_7TLub.js +13 -0
  113. package/tracer-viewer-bundle/assets/apex-D8_7TLub.js.map +1 -0
  114. package/tracer-viewer-bundle/assets/apl-CORt7UWP.js +19 -0
  115. package/tracer-viewer-bundle/assets/apl-CORt7UWP.js.map +1 -0
  116. package/tracer-viewer-bundle/assets/applescript-Co6uUVPk.js +13 -0
  117. package/tracer-viewer-bundle/assets/applescript-Co6uUVPk.js.map +1 -0
  118. package/tracer-viewer-bundle/assets/ara-BRHolxvo.js +13 -0
  119. package/tracer-viewer-bundle/assets/ara-BRHolxvo.js.map +1 -0
  120. package/tracer-viewer-bundle/assets/asciidoc-Ve4PFQV2.js +13 -0
  121. package/tracer-viewer-bundle/assets/asciidoc-Ve4PFQV2.js.map +1 -0
  122. package/tracer-viewer-bundle/assets/asm-D_Q5rh1f.js +13 -0
  123. package/tracer-viewer-bundle/assets/asm-D_Q5rh1f.js.map +1 -0
  124. package/tracer-viewer-bundle/assets/astro-HNnZUWAn.js +19 -0
  125. package/tracer-viewer-bundle/assets/astro-HNnZUWAn.js.map +1 -0
  126. package/tracer-viewer-bundle/assets/aurora-x-D-2ljcwZ.js +12 -0
  127. package/tracer-viewer-bundle/assets/aurora-x-D-2ljcwZ.js.map +1 -0
  128. package/tracer-viewer-bundle/assets/awk-DMzUqQB5.js +13 -0
  129. package/tracer-viewer-bundle/assets/awk-DMzUqQB5.js.map +1 -0
  130. package/tracer-viewer-bundle/assets/ayu-dark-DYE7WIF3.js +12 -0
  131. package/tracer-viewer-bundle/assets/ayu-dark-DYE7WIF3.js.map +1 -0
  132. package/tracer-viewer-bundle/assets/ayu-light-BA47KaF1.js +12 -0
  133. package/tracer-viewer-bundle/assets/ayu-light-BA47KaF1.js.map +1 -0
  134. package/tracer-viewer-bundle/assets/ayu-mirage-32ctXXKs.js +12 -0
  135. package/tracer-viewer-bundle/assets/ayu-mirage-32ctXXKs.js.map +1 -0
  136. package/tracer-viewer-bundle/assets/ballerina-BFfxhgS-.js +13 -0
  137. package/tracer-viewer-bundle/assets/ballerina-BFfxhgS-.js.map +1 -0
  138. package/tracer-viewer-bundle/assets/bat-BkioyH1T.js +13 -0
  139. package/tracer-viewer-bundle/assets/bat-BkioyH1T.js.map +1 -0
  140. package/tracer-viewer-bundle/assets/beancount-k_qm7-4y.js +13 -0
  141. package/tracer-viewer-bundle/assets/beancount-k_qm7-4y.js.map +1 -0
  142. package/tracer-viewer-bundle/assets/berry-uYugtg8r.js +13 -0
  143. package/tracer-viewer-bundle/assets/berry-uYugtg8r.js.map +1 -0
  144. package/tracer-viewer-bundle/assets/bibtex-CHM0blh-.js +13 -0
  145. package/tracer-viewer-bundle/assets/bibtex-CHM0blh-.js.map +1 -0
  146. package/tracer-viewer-bundle/assets/bicep-Bmn6On1c.js +13 -0
  147. package/tracer-viewer-bundle/assets/bicep-Bmn6On1c.js.map +1 -0
  148. package/tracer-viewer-bundle/assets/bird2-BIv1doCn.js +13 -0
  149. package/tracer-viewer-bundle/assets/bird2-BIv1doCn.js.map +1 -0
  150. package/tracer-viewer-bundle/assets/blade-BjGOyj-B.js +21 -0
  151. package/tracer-viewer-bundle/assets/blade-BjGOyj-B.js.map +1 -0
  152. package/tracer-viewer-bundle/assets/bsl-BO_Y6i37.js +14 -0
  153. package/tracer-viewer-bundle/assets/bsl-BO_Y6i37.js.map +1 -0
  154. package/tracer-viewer-bundle/assets/c-BIGW1oBm.js +13 -0
  155. package/tracer-viewer-bundle/assets/c-BIGW1oBm.js.map +1 -0
  156. package/tracer-viewer-bundle/assets/c3-eo99z4R2.js +13 -0
  157. package/tracer-viewer-bundle/assets/c3-eo99z4R2.js.map +1 -0
  158. package/tracer-viewer-bundle/assets/cadence-Bv_4Rxtq.js +13 -0
  159. package/tracer-viewer-bundle/assets/cadence-Bv_4Rxtq.js.map +1 -0
  160. package/tracer-viewer-bundle/assets/cairo-KRGpt6FW.js +14 -0
  161. package/tracer-viewer-bundle/assets/cairo-KRGpt6FW.js.map +1 -0
  162. package/tracer-viewer-bundle/assets/catppuccin-frappe-DFWUc33u.js +12 -0
  163. package/tracer-viewer-bundle/assets/catppuccin-frappe-DFWUc33u.js.map +1 -0
  164. package/tracer-viewer-bundle/assets/catppuccin-latte-C9dUb6Cb.js +12 -0
  165. package/tracer-viewer-bundle/assets/catppuccin-latte-C9dUb6Cb.js.map +1 -0
  166. package/tracer-viewer-bundle/assets/catppuccin-macchiato-DQyhUUbL.js +12 -0
  167. package/tracer-viewer-bundle/assets/catppuccin-macchiato-DQyhUUbL.js.map +1 -0
  168. package/tracer-viewer-bundle/assets/catppuccin-mocha-D87Tk5Gz.js +12 -0
  169. package/tracer-viewer-bundle/assets/catppuccin-mocha-D87Tk5Gz.js.map +1 -0
  170. package/tracer-viewer-bundle/assets/clarity-D53aC0YG.js +13 -0
  171. package/tracer-viewer-bundle/assets/clarity-D53aC0YG.js.map +1 -0
  172. package/tracer-viewer-bundle/assets/clojure-P80f7IUj.js +13 -0
  173. package/tracer-viewer-bundle/assets/clojure-P80f7IUj.js.map +1 -0
  174. package/tracer-viewer-bundle/assets/cmake-D1j8_8rp.js +13 -0
  175. package/tracer-viewer-bundle/assets/cmake-D1j8_8rp.js.map +1 -0
  176. package/tracer-viewer-bundle/assets/cobol-nBiQ_Alo.js +17 -0
  177. package/tracer-viewer-bundle/assets/cobol-nBiQ_Alo.js.map +1 -0
  178. package/tracer-viewer-bundle/assets/codeowners-Bp6g37R7.js +13 -0
  179. package/tracer-viewer-bundle/assets/codeowners-Bp6g37R7.js.map +1 -0
  180. package/tracer-viewer-bundle/assets/codeql-DsOJ9woJ.js +13 -0
  181. package/tracer-viewer-bundle/assets/codeql-DsOJ9woJ.js.map +1 -0
  182. package/tracer-viewer-bundle/assets/coffee-Ch7k5sss.js +14 -0
  183. package/tracer-viewer-bundle/assets/coffee-Ch7k5sss.js.map +1 -0
  184. package/tracer-viewer-bundle/assets/common-lisp-Cg-RD9OK.js +13 -0
  185. package/tracer-viewer-bundle/assets/common-lisp-Cg-RD9OK.js.map +1 -0
  186. package/tracer-viewer-bundle/assets/coq-DkFqJrB1.js +13 -0
  187. package/tracer-viewer-bundle/assets/coq-DkFqJrB1.js.map +1 -0
  188. package/tracer-viewer-bundle/assets/cpp-CofmeUqb.js +23 -0
  189. package/tracer-viewer-bundle/assets/cpp-CofmeUqb.js.map +1 -0
  190. package/tracer-viewer-bundle/assets/crystal-DNxU26gB.js +19 -0
  191. package/tracer-viewer-bundle/assets/crystal-DNxU26gB.js.map +1 -0
  192. package/tracer-viewer-bundle/assets/csharp-COcwbKMJ.js +13 -0
  193. package/tracer-viewer-bundle/assets/csharp-COcwbKMJ.js.map +1 -0
  194. package/tracer-viewer-bundle/assets/css-CLj8gQPS.js +13 -0
  195. package/tracer-viewer-bundle/assets/css-CLj8gQPS.js.map +1 -0
  196. package/tracer-viewer-bundle/assets/csv-fuZLfV_i.js +13 -0
  197. package/tracer-viewer-bundle/assets/csv-fuZLfV_i.js.map +1 -0
  198. package/tracer-viewer-bundle/assets/cue-D82EKSYY.js +13 -0
  199. package/tracer-viewer-bundle/assets/cue-D82EKSYY.js.map +1 -0
  200. package/tracer-viewer-bundle/assets/cypher-COkxafJQ.js +13 -0
  201. package/tracer-viewer-bundle/assets/cypher-COkxafJQ.js.map +1 -0
  202. package/tracer-viewer-bundle/assets/d-85-TOEBH.js +13 -0
  203. package/tracer-viewer-bundle/assets/d-85-TOEBH.js.map +1 -0
  204. package/tracer-viewer-bundle/assets/dark-plus-C3mMm8J8.js +12 -0
  205. package/tracer-viewer-bundle/assets/dark-plus-C3mMm8J8.js.map +1 -0
  206. package/tracer-viewer-bundle/assets/dart-bE4Kk8sk.js +13 -0
  207. package/tracer-viewer-bundle/assets/dart-bE4Kk8sk.js.map +1 -0
  208. package/tracer-viewer-bundle/assets/dax-CEL-wOlO.js +13 -0
  209. package/tracer-viewer-bundle/assets/dax-CEL-wOlO.js.map +1 -0
  210. package/tracer-viewer-bundle/assets/desktop-BmXAJ9_W.js +13 -0
  211. package/tracer-viewer-bundle/assets/desktop-BmXAJ9_W.js.map +1 -0
  212. package/tracer-viewer-bundle/assets/diff-D97Zzqfu.js +13 -0
  213. package/tracer-viewer-bundle/assets/diff-D97Zzqfu.js.map +1 -0
  214. package/tracer-viewer-bundle/assets/docker-BcOcwvcX.js +13 -0
  215. package/tracer-viewer-bundle/assets/docker-BcOcwvcX.js.map +1 -0
  216. package/tracer-viewer-bundle/assets/dotenv-Da5cRb03.js +13 -0
  217. package/tracer-viewer-bundle/assets/dotenv-Da5cRb03.js.map +1 -0
  218. package/tracer-viewer-bundle/assets/dracula-BzJJZx-M.js +12 -0
  219. package/tracer-viewer-bundle/assets/dracula-BzJJZx-M.js.map +1 -0
  220. package/tracer-viewer-bundle/assets/dracula-soft-BXkSAIEj.js +12 -0
  221. package/tracer-viewer-bundle/assets/dracula-soft-BXkSAIEj.js.map +1 -0
  222. package/tracer-viewer-bundle/assets/dream-maker-BtqSS_iP.js +13 -0
  223. package/tracer-viewer-bundle/assets/dream-maker-BtqSS_iP.js.map +1 -0
  224. package/tracer-viewer-bundle/assets/edge-FbVlp4U3.js +18 -0
  225. package/tracer-viewer-bundle/assets/edge-FbVlp4U3.js.map +1 -0
  226. package/tracer-viewer-bundle/assets/elixir-CkH2-t6x.js +16 -0
  227. package/tracer-viewer-bundle/assets/elixir-CkH2-t6x.js.map +1 -0
  228. package/tracer-viewer-bundle/assets/elm-DbKCFpqz.js +15 -0
  229. package/tracer-viewer-bundle/assets/elm-DbKCFpqz.js.map +1 -0
  230. package/tracer-viewer-bundle/assets/emacs-lisp-CXvaQtF9.js +13 -0
  231. package/tracer-viewer-bundle/assets/emacs-lisp-CXvaQtF9.js.map +1 -0
  232. package/tracer-viewer-bundle/assets/erb-BYCe7drp.js +32 -0
  233. package/tracer-viewer-bundle/assets/erb-BYCe7drp.js.map +1 -0
  234. package/tracer-viewer-bundle/assets/erlang-DsQrWhSR.js +14 -0
  235. package/tracer-viewer-bundle/assets/erlang-DsQrWhSR.js.map +1 -0
  236. package/tracer-viewer-bundle/assets/everforest-dark-BgDCqdQA.js +12 -0
  237. package/tracer-viewer-bundle/assets/everforest-dark-BgDCqdQA.js.map +1 -0
  238. package/tracer-viewer-bundle/assets/everforest-light-C8M2exoo.js +12 -0
  239. package/tracer-viewer-bundle/assets/everforest-light-C8M2exoo.js.map +1 -0
  240. package/tracer-viewer-bundle/assets/favicon-DRSNNJwn.svg +3 -0
  241. package/tracer-viewer-bundle/assets/fennel-BYunw83y.js +13 -0
  242. package/tracer-viewer-bundle/assets/fennel-BYunw83y.js.map +1 -0
  243. package/tracer-viewer-bundle/assets/fish-BvzEVeQv.js +13 -0
  244. package/tracer-viewer-bundle/assets/fish-BvzEVeQv.js.map +1 -0
  245. package/tracer-viewer-bundle/assets/fluent-C4IJs8-o.js +13 -0
  246. package/tracer-viewer-bundle/assets/fluent-C4IJs8-o.js.map +1 -0
  247. package/tracer-viewer-bundle/assets/fortran-fixed-form-CkoXwp7k.js +14 -0
  248. package/tracer-viewer-bundle/assets/fortran-fixed-form-CkoXwp7k.js.map +1 -0
  249. package/tracer-viewer-bundle/assets/fortran-free-form-BxgE0vQu.js +13 -0
  250. package/tracer-viewer-bundle/assets/fortran-free-form-BxgE0vQu.js.map +1 -0
  251. package/tracer-viewer-bundle/assets/fsharp-CXgrBDvD.js +14 -0
  252. package/tracer-viewer-bundle/assets/fsharp-CXgrBDvD.js.map +1 -0
  253. package/tracer-viewer-bundle/assets/gdresource-BOOCDP_w.js +15 -0
  254. package/tracer-viewer-bundle/assets/gdresource-BOOCDP_w.js.map +1 -0
  255. package/tracer-viewer-bundle/assets/gdscript-C5YyOfLZ.js +13 -0
  256. package/tracer-viewer-bundle/assets/gdscript-C5YyOfLZ.js.map +1 -0
  257. package/tracer-viewer-bundle/assets/gdshader-DkwncUOv.js +13 -0
  258. package/tracer-viewer-bundle/assets/gdshader-DkwncUOv.js.map +1 -0
  259. package/tracer-viewer-bundle/assets/genie-D0YGMca9.js +13 -0
  260. package/tracer-viewer-bundle/assets/genie-D0YGMca9.js.map +1 -0
  261. package/tracer-viewer-bundle/assets/gherkin-DyxjwDmM.js +13 -0
  262. package/tracer-viewer-bundle/assets/gherkin-DyxjwDmM.js.map +1 -0
  263. package/tracer-viewer-bundle/assets/git-commit-F4YmCXRG.js +14 -0
  264. package/tracer-viewer-bundle/assets/git-commit-F4YmCXRG.js.map +1 -0
  265. package/tracer-viewer-bundle/assets/git-rebase-r7XF79zn.js +14 -0
  266. package/tracer-viewer-bundle/assets/git-rebase-r7XF79zn.js.map +1 -0
  267. package/tracer-viewer-bundle/assets/github-dark-DHJKELXO.js +12 -0
  268. package/tracer-viewer-bundle/assets/github-dark-DHJKELXO.js.map +1 -0
  269. package/tracer-viewer-bundle/assets/github-dark-default-Cuk6v7N8.js +12 -0
  270. package/tracer-viewer-bundle/assets/github-dark-default-Cuk6v7N8.js.map +1 -0
  271. package/tracer-viewer-bundle/assets/github-dark-dimmed-DH5Ifo-i.js +12 -0
  272. package/tracer-viewer-bundle/assets/github-dark-dimmed-DH5Ifo-i.js.map +1 -0
  273. package/tracer-viewer-bundle/assets/github-dark-high-contrast-E3gJ1_iC.js +12 -0
  274. package/tracer-viewer-bundle/assets/github-dark-high-contrast-E3gJ1_iC.js.map +1 -0
  275. package/tracer-viewer-bundle/assets/github-light-DAi9KRSo.js +12 -0
  276. package/tracer-viewer-bundle/assets/github-light-DAi9KRSo.js.map +1 -0
  277. package/tracer-viewer-bundle/assets/github-light-default-D7oLnXFd.js +12 -0
  278. package/tracer-viewer-bundle/assets/github-light-default-D7oLnXFd.js.map +1 -0
  279. package/tracer-viewer-bundle/assets/github-light-high-contrast-BfjtVDDH.js +12 -0
  280. package/tracer-viewer-bundle/assets/github-light-high-contrast-BfjtVDDH.js.map +1 -0
  281. package/tracer-viewer-bundle/assets/gleam-BspZqrRM.js +13 -0
  282. package/tracer-viewer-bundle/assets/gleam-BspZqrRM.js.map +1 -0
  283. package/tracer-viewer-bundle/assets/glimmer-js-ByusRIyA.js +17 -0
  284. package/tracer-viewer-bundle/assets/glimmer-js-ByusRIyA.js.map +1 -0
  285. package/tracer-viewer-bundle/assets/glimmer-ts-BfAWNZQY.js +17 -0
  286. package/tracer-viewer-bundle/assets/glimmer-ts-BfAWNZQY.js.map +1 -0
  287. package/tracer-viewer-bundle/assets/glsl-DplSGwfg.js +14 -0
  288. package/tracer-viewer-bundle/assets/glsl-DplSGwfg.js.map +1 -0
  289. package/tracer-viewer-bundle/assets/gn-n2N0HUVH.js +13 -0
  290. package/tracer-viewer-bundle/assets/gn-n2N0HUVH.js.map +1 -0
  291. package/tracer-viewer-bundle/assets/gnuplot-DdkO51Og.js +13 -0
  292. package/tracer-viewer-bundle/assets/gnuplot-DdkO51Og.js.map +1 -0
  293. package/tracer-viewer-bundle/assets/go-C27-OAKa.js +13 -0
  294. package/tracer-viewer-bundle/assets/go-C27-OAKa.js.map +1 -0
  295. package/tracer-viewer-bundle/assets/graphql-ChdNCCLP.js +17 -0
  296. package/tracer-viewer-bundle/assets/graphql-ChdNCCLP.js.map +1 -0
  297. package/tracer-viewer-bundle/assets/groovy-gcz8RCvz.js +13 -0
  298. package/tracer-viewer-bundle/assets/groovy-gcz8RCvz.js.map +1 -0
  299. package/tracer-viewer-bundle/assets/gruvbox-dark-hard-CFHQjOhq.js +12 -0
  300. package/tracer-viewer-bundle/assets/gruvbox-dark-hard-CFHQjOhq.js.map +1 -0
  301. package/tracer-viewer-bundle/assets/gruvbox-dark-medium-GsRaNv29.js +12 -0
  302. package/tracer-viewer-bundle/assets/gruvbox-dark-medium-GsRaNv29.js.map +1 -0
  303. package/tracer-viewer-bundle/assets/gruvbox-dark-soft-CVdnzihN.js +12 -0
  304. package/tracer-viewer-bundle/assets/gruvbox-dark-soft-CVdnzihN.js.map +1 -0
  305. package/tracer-viewer-bundle/assets/gruvbox-light-hard-CH1njM8p.js +12 -0
  306. package/tracer-viewer-bundle/assets/gruvbox-light-hard-CH1njM8p.js.map +1 -0
  307. package/tracer-viewer-bundle/assets/gruvbox-light-medium-DRw_LuNl.js +12 -0
  308. package/tracer-viewer-bundle/assets/gruvbox-light-medium-DRw_LuNl.js.map +1 -0
  309. package/tracer-viewer-bundle/assets/gruvbox-light-soft-hJgmCMqR.js +12 -0
  310. package/tracer-viewer-bundle/assets/gruvbox-light-soft-hJgmCMqR.js.map +1 -0
  311. package/tracer-viewer-bundle/assets/hack-i7_Ulhet.js +17 -0
  312. package/tracer-viewer-bundle/assets/hack-i7_Ulhet.js.map +1 -0
  313. package/tracer-viewer-bundle/assets/haml-D5jkg6IW.js +15 -0
  314. package/tracer-viewer-bundle/assets/haml-D5jkg6IW.js.map +1 -0
  315. package/tracer-viewer-bundle/assets/handlebars-BpdQsYii.js +17 -0
  316. package/tracer-viewer-bundle/assets/handlebars-BpdQsYii.js.map +1 -0
  317. package/tracer-viewer-bundle/assets/haskell-Df6bDoY_.js +13 -0
  318. package/tracer-viewer-bundle/assets/haskell-Df6bDoY_.js.map +1 -0
  319. package/tracer-viewer-bundle/assets/haxe-CzTSHFRz.js +13 -0
  320. package/tracer-viewer-bundle/assets/haxe-CzTSHFRz.js.map +1 -0
  321. package/tracer-viewer-bundle/assets/hcl-BWvSN4gD.js +13 -0
  322. package/tracer-viewer-bundle/assets/hcl-BWvSN4gD.js.map +1 -0
  323. package/tracer-viewer-bundle/assets/hjson-D5-asLiD.js +13 -0
  324. package/tracer-viewer-bundle/assets/hjson-D5-asLiD.js.map +1 -0
  325. package/tracer-viewer-bundle/assets/hlsl-D3lLCCz7.js +13 -0
  326. package/tracer-viewer-bundle/assets/hlsl-D3lLCCz7.js.map +1 -0
  327. package/tracer-viewer-bundle/assets/horizon-BUw7H-hv.js +12 -0
  328. package/tracer-viewer-bundle/assets/horizon-BUw7H-hv.js.map +1 -0
  329. package/tracer-viewer-bundle/assets/horizon-bright-CUuTKBJd.js +12 -0
  330. package/tracer-viewer-bundle/assets/horizon-bright-CUuTKBJd.js.map +1 -0
  331. package/tracer-viewer-bundle/assets/houston-DnULxvSX.js +12 -0
  332. package/tracer-viewer-bundle/assets/houston-DnULxvSX.js.map +1 -0
  333. package/tracer-viewer-bundle/assets/html-derivative-DlHx6ybY.js +16 -0
  334. package/tracer-viewer-bundle/assets/html-derivative-DlHx6ybY.js.map +1 -0
  335. package/tracer-viewer-bundle/assets/html-pp8916En.js +15 -0
  336. package/tracer-viewer-bundle/assets/html-pp8916En.js.map +1 -0
  337. package/tracer-viewer-bundle/assets/http-jrhK8wxY.js +22 -0
  338. package/tracer-viewer-bundle/assets/http-jrhK8wxY.js.map +1 -0
  339. package/tracer-viewer-bundle/assets/hurl-irOxFIW8.js +21 -0
  340. package/tracer-viewer-bundle/assets/hurl-irOxFIW8.js.map +1 -0
  341. package/tracer-viewer-bundle/assets/hxml-Bvhsp5Yf.js +14 -0
  342. package/tracer-viewer-bundle/assets/hxml-Bvhsp5Yf.js.map +1 -0
  343. package/tracer-viewer-bundle/assets/hy-DFXneXwc.js +13 -0
  344. package/tracer-viewer-bundle/assets/hy-DFXneXwc.js.map +1 -0
  345. package/tracer-viewer-bundle/assets/imba-DGztddWO.js +13 -0
  346. package/tracer-viewer-bundle/assets/imba-DGztddWO.js.map +1 -0
  347. package/tracer-viewer-bundle/assets/index-CIRSNBm6.css +4792 -0
  348. package/tracer-viewer-bundle/assets/index-DS0dKIBi.js +36912 -0
  349. package/tracer-viewer-bundle/assets/index-DS0dKIBi.js.map +1 -0
  350. package/tracer-viewer-bundle/assets/ini-BEwlwnbL.js +13 -0
  351. package/tracer-viewer-bundle/assets/ini-BEwlwnbL.js.map +1 -0
  352. package/tracer-viewer-bundle/assets/java-CylS5w8V.js +13 -0
  353. package/tracer-viewer-bundle/assets/java-CylS5w8V.js.map +1 -0
  354. package/tracer-viewer-bundle/assets/javascript-wDzz0qaB.js +13 -0
  355. package/tracer-viewer-bundle/assets/javascript-wDzz0qaB.js.map +1 -0
  356. package/tracer-viewer-bundle/assets/jinja-f2NsQr07.js +22 -0
  357. package/tracer-viewer-bundle/assets/jinja-f2NsQr07.js.map +1 -0
  358. package/tracer-viewer-bundle/assets/jison-wvAkD_A8.js +14 -0
  359. package/tracer-viewer-bundle/assets/jison-wvAkD_A8.js.map +1 -0
  360. package/tracer-viewer-bundle/assets/json-Cp-IABpG.js +13 -0
  361. package/tracer-viewer-bundle/assets/json-Cp-IABpG.js.map +1 -0
  362. package/tracer-viewer-bundle/assets/json5-C9tS-k6U.js +13 -0
  363. package/tracer-viewer-bundle/assets/json5-C9tS-k6U.js.map +1 -0
  364. package/tracer-viewer-bundle/assets/jsonc-Des-eS-w.js +13 -0
  365. package/tracer-viewer-bundle/assets/jsonc-Des-eS-w.js.map +1 -0
  366. package/tracer-viewer-bundle/assets/jsonl-DcaNXYhu.js +13 -0
  367. package/tracer-viewer-bundle/assets/jsonl-DcaNXYhu.js.map +1 -0
  368. package/tracer-viewer-bundle/assets/jsonnet-DFQXde-d.js +13 -0
  369. package/tracer-viewer-bundle/assets/jsonnet-DFQXde-d.js.map +1 -0
  370. package/tracer-viewer-bundle/assets/jssm-C2t-YnRu.js +13 -0
  371. package/tracer-viewer-bundle/assets/jssm-C2t-YnRu.js.map +1 -0
  372. package/tracer-viewer-bundle/assets/jsx-g9-lgVsj.js +13 -0
  373. package/tracer-viewer-bundle/assets/jsx-g9-lgVsj.js.map +1 -0
  374. package/tracer-viewer-bundle/assets/julia-CxzCAyBv.js +21 -0
  375. package/tracer-viewer-bundle/assets/julia-CxzCAyBv.js.map +1 -0
  376. package/tracer-viewer-bundle/assets/just-VxiPbLrw.js +34 -0
  377. package/tracer-viewer-bundle/assets/just-VxiPbLrw.js.map +1 -0
  378. package/tracer-viewer-bundle/assets/kanagawa-dragon-CkXjmgJE.js +12 -0
  379. package/tracer-viewer-bundle/assets/kanagawa-dragon-CkXjmgJE.js.map +1 -0
  380. package/tracer-viewer-bundle/assets/kanagawa-lotus-CfQXZHmo.js +12 -0
  381. package/tracer-viewer-bundle/assets/kanagawa-lotus-CfQXZHmo.js.map +1 -0
  382. package/tracer-viewer-bundle/assets/kanagawa-wave-DWedfzmr.js +12 -0
  383. package/tracer-viewer-bundle/assets/kanagawa-wave-DWedfzmr.js.map +1 -0
  384. package/tracer-viewer-bundle/assets/kdl-DV7GczEv.js +13 -0
  385. package/tracer-viewer-bundle/assets/kdl-DV7GczEv.js.map +1 -0
  386. package/tracer-viewer-bundle/assets/kotlin-BdnUsdx6.js +13 -0
  387. package/tracer-viewer-bundle/assets/kotlin-BdnUsdx6.js.map +1 -0
  388. package/tracer-viewer-bundle/assets/kusto-wEQ09or8.js +13 -0
  389. package/tracer-viewer-bundle/assets/kusto-wEQ09or8.js.map +1 -0
  390. package/tracer-viewer-bundle/assets/laserwave-DUszq2jm.js +12 -0
  391. package/tracer-viewer-bundle/assets/laserwave-DUszq2jm.js.map +1 -0
  392. package/tracer-viewer-bundle/assets/latex-CWtU0Tv5.js +15 -0
  393. package/tracer-viewer-bundle/assets/latex-CWtU0Tv5.js.map +1 -0
  394. package/tracer-viewer-bundle/assets/lean-BZvkOJ9d.js +13 -0
  395. package/tracer-viewer-bundle/assets/lean-BZvkOJ9d.js.map +1 -0
  396. package/tracer-viewer-bundle/assets/less-B1dDrJ26.js +13 -0
  397. package/tracer-viewer-bundle/assets/less-B1dDrJ26.js.map +1 -0
  398. package/tracer-viewer-bundle/assets/light-plus-B7mTdjB0.js +12 -0
  399. package/tracer-viewer-bundle/assets/light-plus-B7mTdjB0.js.map +1 -0
  400. package/tracer-viewer-bundle/assets/liquid-C0sCDyMI.js +17 -0
  401. package/tracer-viewer-bundle/assets/liquid-C0sCDyMI.js.map +1 -0
  402. package/tracer-viewer-bundle/assets/llvm-DjAJT7YJ.js +13 -0
  403. package/tracer-viewer-bundle/assets/llvm-DjAJT7YJ.js.map +1 -0
  404. package/tracer-viewer-bundle/assets/log-2UxHyX5q.js +13 -0
  405. package/tracer-viewer-bundle/assets/log-2UxHyX5q.js.map +1 -0
  406. package/tracer-viewer-bundle/assets/logo-BtOb2qkB.js +13 -0
  407. package/tracer-viewer-bundle/assets/logo-BtOb2qkB.js.map +1 -0
  408. package/tracer-viewer-bundle/assets/lua-BaeVxFsk.js +14 -0
  409. package/tracer-viewer-bundle/assets/lua-BaeVxFsk.js.map +1 -0
  410. package/tracer-viewer-bundle/assets/luau-C-HG3fhB.js +13 -0
  411. package/tracer-viewer-bundle/assets/luau-C-HG3fhB.js.map +1 -0
  412. package/tracer-viewer-bundle/assets/make-CHLpvVh8.js +13 -0
  413. package/tracer-viewer-bundle/assets/make-CHLpvVh8.js.map +1 -0
  414. package/tracer-viewer-bundle/assets/markdown-Cvjx9yec.js +13 -0
  415. package/tracer-viewer-bundle/assets/markdown-Cvjx9yec.js.map +1 -0
  416. package/tracer-viewer-bundle/assets/marko-DjSrsDqO.js +17 -0
  417. package/tracer-viewer-bundle/assets/marko-DjSrsDqO.js.map +1 -0
  418. package/tracer-viewer-bundle/assets/material-theme-D5KoaKCx.js +12 -0
  419. package/tracer-viewer-bundle/assets/material-theme-D5KoaKCx.js.map +1 -0
  420. package/tracer-viewer-bundle/assets/material-theme-darker-BfHTSMKl.js +12 -0
  421. package/tracer-viewer-bundle/assets/material-theme-darker-BfHTSMKl.js.map +1 -0
  422. package/tracer-viewer-bundle/assets/material-theme-lighter-B0m2ddpp.js +12 -0
  423. package/tracer-viewer-bundle/assets/material-theme-lighter-B0m2ddpp.js.map +1 -0
  424. package/tracer-viewer-bundle/assets/material-theme-ocean-CyktbL80.js +12 -0
  425. package/tracer-viewer-bundle/assets/material-theme-ocean-CyktbL80.js.map +1 -0
  426. package/tracer-viewer-bundle/assets/material-theme-palenight-Csfq5Kiy.js +12 -0
  427. package/tracer-viewer-bundle/assets/material-theme-palenight-Csfq5Kiy.js.map +1 -0
  428. package/tracer-viewer-bundle/assets/matlab-D7o27uSR.js +13 -0
  429. package/tracer-viewer-bundle/assets/matlab-D7o27uSR.js.map +1 -0
  430. package/tracer-viewer-bundle/assets/mdc-DTYItulj.js +19 -0
  431. package/tracer-viewer-bundle/assets/mdc-DTYItulj.js.map +1 -0
  432. package/tracer-viewer-bundle/assets/mdx-Cmh6b_Ma.js +13 -0
  433. package/tracer-viewer-bundle/assets/mdx-Cmh6b_Ma.js.map +1 -0
  434. package/tracer-viewer-bundle/assets/mermaid-mWjccvbQ.js +13 -0
  435. package/tracer-viewer-bundle/assets/mermaid-mWjccvbQ.js.map +1 -0
  436. package/tracer-viewer-bundle/assets/min-dark-CafNBF8u.js +12 -0
  437. package/tracer-viewer-bundle/assets/min-dark-CafNBF8u.js.map +1 -0
  438. package/tracer-viewer-bundle/assets/min-light-CTRr51gU.js +12 -0
  439. package/tracer-viewer-bundle/assets/min-light-CTRr51gU.js.map +1 -0
  440. package/tracer-viewer-bundle/assets/mipsasm-CKIfxQSi.js +13 -0
  441. package/tracer-viewer-bundle/assets/mipsasm-CKIfxQSi.js.map +1 -0
  442. package/tracer-viewer-bundle/assets/mojo-rZm6bMo-.js +13 -0
  443. package/tracer-viewer-bundle/assets/mojo-rZm6bMo-.js.map +1 -0
  444. package/tracer-viewer-bundle/assets/monokai-D4h5O-jR.js +12 -0
  445. package/tracer-viewer-bundle/assets/monokai-D4h5O-jR.js.map +1 -0
  446. package/tracer-viewer-bundle/assets/moonbit-_H4v1dQx.js +13 -0
  447. package/tracer-viewer-bundle/assets/moonbit-_H4v1dQx.js.map +1 -0
  448. package/tracer-viewer-bundle/assets/move-IF9eRakj.js +13 -0
  449. package/tracer-viewer-bundle/assets/move-IF9eRakj.js.map +1 -0
  450. package/tracer-viewer-bundle/assets/narrat-DRg8JJMk.js +13 -0
  451. package/tracer-viewer-bundle/assets/narrat-DRg8JJMk.js.map +1 -0
  452. package/tracer-viewer-bundle/assets/nextflow-C-mBbutL.js +14 -0
  453. package/tracer-viewer-bundle/assets/nextflow-C-mBbutL.js.map +1 -0
  454. package/tracer-viewer-bundle/assets/nextflow-groovy-vE_lwT2v.js +13 -0
  455. package/tracer-viewer-bundle/assets/nextflow-groovy-vE_lwT2v.js.map +1 -0
  456. package/tracer-viewer-bundle/assets/nginx-BpAMiNFr.js +15 -0
  457. package/tracer-viewer-bundle/assets/nginx-BpAMiNFr.js.map +1 -0
  458. package/tracer-viewer-bundle/assets/night-owl-C39BiMTA.js +12 -0
  459. package/tracer-viewer-bundle/assets/night-owl-C39BiMTA.js.map +1 -0
  460. package/tracer-viewer-bundle/assets/night-owl-light-CMTm3GFP.js +12 -0
  461. package/tracer-viewer-bundle/assets/night-owl-light-CMTm3GFP.js.map +1 -0
  462. package/tracer-viewer-bundle/assets/nim-BIad80T-.js +21 -0
  463. package/tracer-viewer-bundle/assets/nim-BIad80T-.js.map +1 -0
  464. package/tracer-viewer-bundle/assets/nix-CwoSXNpI.js +19 -0
  465. package/tracer-viewer-bundle/assets/nix-CwoSXNpI.js.map +1 -0
  466. package/tracer-viewer-bundle/assets/nord-Ddv68eIx.js +12 -0
  467. package/tracer-viewer-bundle/assets/nord-Ddv68eIx.js.map +1 -0
  468. package/tracer-viewer-bundle/assets/nushell-Cz2AlsmD.js +13 -0
  469. package/tracer-viewer-bundle/assets/nushell-Cz2AlsmD.js.map +1 -0
  470. package/tracer-viewer-bundle/assets/objective-c-DXmwc3jG.js +13 -0
  471. package/tracer-viewer-bundle/assets/objective-c-DXmwc3jG.js.map +1 -0
  472. package/tracer-viewer-bundle/assets/objective-cpp-CLxacb5B.js +13 -0
  473. package/tracer-viewer-bundle/assets/objective-cpp-CLxacb5B.js.map +1 -0
  474. package/tracer-viewer-bundle/assets/ocaml-C0hk2d4L.js +13 -0
  475. package/tracer-viewer-bundle/assets/ocaml-C0hk2d4L.js.map +1 -0
  476. package/tracer-viewer-bundle/assets/odin-BBf5iR-q.js +13 -0
  477. package/tracer-viewer-bundle/assets/odin-BBf5iR-q.js.map +1 -0
  478. package/tracer-viewer-bundle/assets/one-dark-pro-DVMEJ2y_.js +12 -0
  479. package/tracer-viewer-bundle/assets/one-dark-pro-DVMEJ2y_.js.map +1 -0
  480. package/tracer-viewer-bundle/assets/one-light-C3Wv6jpd.js +12 -0
  481. package/tracer-viewer-bundle/assets/one-light-C3Wv6jpd.js.map +1 -0
  482. package/tracer-viewer-bundle/assets/openscad-C4EeE6gA.js +13 -0
  483. package/tracer-viewer-bundle/assets/openscad-C4EeE6gA.js.map +1 -0
  484. package/tracer-viewer-bundle/assets/pascal-D93ZcfNL.js +13 -0
  485. package/tracer-viewer-bundle/assets/pascal-D93ZcfNL.js.map +1 -0
  486. package/tracer-viewer-bundle/assets/perl-NvoQZIq0.js +19 -0
  487. package/tracer-viewer-bundle/assets/perl-NvoQZIq0.js.map +1 -0
  488. package/tracer-viewer-bundle/assets/php-R6g_5hLQ.js +20 -0
  489. package/tracer-viewer-bundle/assets/php-R6g_5hLQ.js.map +1 -0
  490. package/tracer-viewer-bundle/assets/pkl-u5AG7uiY.js +13 -0
  491. package/tracer-viewer-bundle/assets/pkl-u5AG7uiY.js.map +1 -0
  492. package/tracer-viewer-bundle/assets/plastic-3e1v2bzS.js +12 -0
  493. package/tracer-viewer-bundle/assets/plastic-3e1v2bzS.js.map +1 -0
  494. package/tracer-viewer-bundle/assets/plsql-ChMvpjG-.js +13 -0
  495. package/tracer-viewer-bundle/assets/plsql-ChMvpjG-.js.map +1 -0
  496. package/tracer-viewer-bundle/assets/po-BTJTHyun.js +13 -0
  497. package/tracer-viewer-bundle/assets/po-BTJTHyun.js.map +1 -0
  498. package/tracer-viewer-bundle/assets/poimandres-CS3Unz2-.js +12 -0
  499. package/tracer-viewer-bundle/assets/poimandres-CS3Unz2-.js.map +1 -0
  500. package/tracer-viewer-bundle/assets/polar-C0HS_06l.js +13 -0
  501. package/tracer-viewer-bundle/assets/polar-C0HS_06l.js.map +1 -0
  502. package/tracer-viewer-bundle/assets/postcss-CXtECtnM.js +13 -0
  503. package/tracer-viewer-bundle/assets/postcss-CXtECtnM.js.map +1 -0
  504. package/tracer-viewer-bundle/assets/powerquery-CEu0bR-o.js +13 -0
  505. package/tracer-viewer-bundle/assets/powerquery-CEu0bR-o.js.map +1 -0
  506. package/tracer-viewer-bundle/assets/powershell-Dpen1YoG.js +13 -0
  507. package/tracer-viewer-bundle/assets/powershell-Dpen1YoG.js.map +1 -0
  508. package/tracer-viewer-bundle/assets/prisma-Dd19v3D-.js +13 -0
  509. package/tracer-viewer-bundle/assets/prisma-Dd19v3D-.js.map +1 -0
  510. package/tracer-viewer-bundle/assets/prolog-CbFg5uaA.js +13 -0
  511. package/tracer-viewer-bundle/assets/prolog-CbFg5uaA.js.map +1 -0
  512. package/tracer-viewer-bundle/assets/proto-C7zT0LnQ.js +13 -0
  513. package/tracer-viewer-bundle/assets/proto-C7zT0LnQ.js.map +1 -0
  514. package/tracer-viewer-bundle/assets/pug-DKIMFp6K.js +16 -0
  515. package/tracer-viewer-bundle/assets/pug-DKIMFp6K.js.map +1 -0
  516. package/tracer-viewer-bundle/assets/puppet-BMWR74SV.js +13 -0
  517. package/tracer-viewer-bundle/assets/puppet-BMWR74SV.js.map +1 -0
  518. package/tracer-viewer-bundle/assets/purescript-CklMAg4u.js +13 -0
  519. package/tracer-viewer-bundle/assets/purescript-CklMAg4u.js.map +1 -0
  520. package/tracer-viewer-bundle/assets/python-B6aJPvgy.js +13 -0
  521. package/tracer-viewer-bundle/assets/python-B6aJPvgy.js.map +1 -0
  522. package/tracer-viewer-bundle/assets/qml-3beO22l8.js +14 -0
  523. package/tracer-viewer-bundle/assets/qml-3beO22l8.js.map +1 -0
  524. package/tracer-viewer-bundle/assets/qmldir-C8lEn-DE.js +13 -0
  525. package/tracer-viewer-bundle/assets/qmldir-C8lEn-DE.js.map +1 -0
  526. package/tracer-viewer-bundle/assets/qss-IeuSbFQv.js +13 -0
  527. package/tracer-viewer-bundle/assets/qss-IeuSbFQv.js.map +1 -0
  528. package/tracer-viewer-bundle/assets/r-Dspwwk_N.js +13 -0
  529. package/tracer-viewer-bundle/assets/r-Dspwwk_N.js.map +1 -0
  530. package/tracer-viewer-bundle/assets/racket-BqYA7rlc.js +13 -0
  531. package/tracer-viewer-bundle/assets/racket-BqYA7rlc.js.map +1 -0
  532. package/tracer-viewer-bundle/assets/raku-DXvB9xmW.js +13 -0
  533. package/tracer-viewer-bundle/assets/raku-DXvB9xmW.js.map +1 -0
  534. package/tracer-viewer-bundle/assets/razor-BDqjjVU7.js +17 -0
  535. package/tracer-viewer-bundle/assets/razor-BDqjjVU7.js.map +1 -0
  536. package/tracer-viewer-bundle/assets/red-bN70gL4F.js +12 -0
  537. package/tracer-viewer-bundle/assets/red-bN70gL4F.js.map +1 -0
  538. package/tracer-viewer-bundle/assets/reg-C-SQnVFl.js +13 -0
  539. package/tracer-viewer-bundle/assets/reg-C-SQnVFl.js.map +1 -0
  540. package/tracer-viewer-bundle/assets/regexp-CDVJQ6XC.js +13 -0
  541. package/tracer-viewer-bundle/assets/regexp-CDVJQ6XC.js.map +1 -0
  542. package/tracer-viewer-bundle/assets/rel-C3B-1QV4.js +13 -0
  543. package/tracer-viewer-bundle/assets/rel-C3B-1QV4.js.map +1 -0
  544. package/tracer-viewer-bundle/assets/riscv-BM1_JUlF.js +13 -0
  545. package/tracer-viewer-bundle/assets/riscv-BM1_JUlF.js.map +1 -0
  546. package/tracer-viewer-bundle/assets/ron-D8l8udqQ.js +13 -0
  547. package/tracer-viewer-bundle/assets/ron-D8l8udqQ.js.map +1 -0
  548. package/tracer-viewer-bundle/assets/rose-pine-dawn-DHQR4-dF.js +12 -0
  549. package/tracer-viewer-bundle/assets/rose-pine-dawn-DHQR4-dF.js.map +1 -0
  550. package/tracer-viewer-bundle/assets/rose-pine-moon-D4_iv3hh.js +12 -0
  551. package/tracer-viewer-bundle/assets/rose-pine-moon-D4_iv3hh.js.map +1 -0
  552. package/tracer-viewer-bundle/assets/rose-pine-qdsjHGoJ.js +12 -0
  553. package/tracer-viewer-bundle/assets/rose-pine-qdsjHGoJ.js.map +1 -0
  554. package/tracer-viewer-bundle/assets/rosmsg-BJDFO7_C.js +13 -0
  555. package/tracer-viewer-bundle/assets/rosmsg-BJDFO7_C.js.map +1 -0
  556. package/tracer-viewer-bundle/assets/rst-CRjBmOyv.js +35 -0
  557. package/tracer-viewer-bundle/assets/rst-CRjBmOyv.js.map +1 -0
  558. package/tracer-viewer-bundle/assets/ruby-Wjq7vjNf.js +31 -0
  559. package/tracer-viewer-bundle/assets/ruby-Wjq7vjNf.js.map +1 -0
  560. package/tracer-viewer-bundle/assets/rust-B1yitclQ.js +13 -0
  561. package/tracer-viewer-bundle/assets/rust-B1yitclQ.js.map +1 -0
  562. package/tracer-viewer-bundle/assets/sas-cz2c8ADy.js +14 -0
  563. package/tracer-viewer-bundle/assets/sas-cz2c8ADy.js.map +1 -0
  564. package/tracer-viewer-bundle/assets/sass-Cj5Yp3dK.js +13 -0
  565. package/tracer-viewer-bundle/assets/sass-Cj5Yp3dK.js.map +1 -0
  566. package/tracer-viewer-bundle/assets/scala-C151Ov-r.js +13 -0
  567. package/tracer-viewer-bundle/assets/scala-C151Ov-r.js.map +1 -0
  568. package/tracer-viewer-bundle/assets/scheme-C98Dy4si.js +13 -0
  569. package/tracer-viewer-bundle/assets/scheme-C98Dy4si.js.map +1 -0
  570. package/tracer-viewer-bundle/assets/scss-D5BDwBP9.js +14 -0
  571. package/tracer-viewer-bundle/assets/scss-D5BDwBP9.js.map +1 -0
  572. package/tracer-viewer-bundle/assets/sdbl-DVxCFoDh.js +13 -0
  573. package/tracer-viewer-bundle/assets/sdbl-DVxCFoDh.js.map +1 -0
  574. package/tracer-viewer-bundle/assets/shaderlab-Dg9Lc6iA.js +14 -0
  575. package/tracer-viewer-bundle/assets/shaderlab-Dg9Lc6iA.js.map +1 -0
  576. package/tracer-viewer-bundle/assets/shellscript-Yzrsuije.js +13 -0
  577. package/tracer-viewer-bundle/assets/shellscript-Yzrsuije.js.map +1 -0
  578. package/tracer-viewer-bundle/assets/shellsession-BADoaaVG.js +14 -0
  579. package/tracer-viewer-bundle/assets/shellsession-BADoaaVG.js.map +1 -0
  580. package/tracer-viewer-bundle/assets/slack-dark-BthQWCQV.js +12 -0
  581. package/tracer-viewer-bundle/assets/slack-dark-BthQWCQV.js.map +1 -0
  582. package/tracer-viewer-bundle/assets/slack-ochin-DqwNpetd.js +12 -0
  583. package/tracer-viewer-bundle/assets/slack-ochin-DqwNpetd.js.map +1 -0
  584. package/tracer-viewer-bundle/assets/smalltalk-BERRCDM3.js +13 -0
  585. package/tracer-viewer-bundle/assets/smalltalk-BERRCDM3.js.map +1 -0
  586. package/tracer-viewer-bundle/assets/snazzy-light-Bw305WKR.js +12 -0
  587. package/tracer-viewer-bundle/assets/snazzy-light-Bw305WKR.js.map +1 -0
  588. package/tracer-viewer-bundle/assets/solarized-dark-DXbdFlpD.js +12 -0
  589. package/tracer-viewer-bundle/assets/solarized-dark-DXbdFlpD.js.map +1 -0
  590. package/tracer-viewer-bundle/assets/solarized-light-L9t79GZl.js +12 -0
  591. package/tracer-viewer-bundle/assets/solarized-light-L9t79GZl.js.map +1 -0
  592. package/tracer-viewer-bundle/assets/solidity-rGO070M0.js +13 -0
  593. package/tracer-viewer-bundle/assets/solidity-rGO070M0.js.map +1 -0
  594. package/tracer-viewer-bundle/assets/soy-8wufbnw4.js +16 -0
  595. package/tracer-viewer-bundle/assets/soy-8wufbnw4.js.map +1 -0
  596. package/tracer-viewer-bundle/assets/sparql-rVzFXLq3.js +14 -0
  597. package/tracer-viewer-bundle/assets/sparql-rVzFXLq3.js.map +1 -0
  598. package/tracer-viewer-bundle/assets/splunk-BtCnVYZw.js +13 -0
  599. package/tracer-viewer-bundle/assets/splunk-BtCnVYZw.js.map +1 -0
  600. package/tracer-viewer-bundle/assets/sql-BLtJtn59.js +13 -0
  601. package/tracer-viewer-bundle/assets/sql-BLtJtn59.js.map +1 -0
  602. package/tracer-viewer-bundle/assets/ssh-config-_ykCGR6B.js +13 -0
  603. package/tracer-viewer-bundle/assets/ssh-config-_ykCGR6B.js.map +1 -0
  604. package/tracer-viewer-bundle/assets/stata-BH5u7GGu.js +14 -0
  605. package/tracer-viewer-bundle/assets/stata-BH5u7GGu.js.map +1 -0
  606. package/tracer-viewer-bundle/assets/stylus-BEDo0Tqx.js +13 -0
  607. package/tracer-viewer-bundle/assets/stylus-BEDo0Tqx.js.map +1 -0
  608. package/tracer-viewer-bundle/assets/surrealql-Bq5Q-fJD.js +14 -0
  609. package/tracer-viewer-bundle/assets/surrealql-Bq5Q-fJD.js.map +1 -0
  610. package/tracer-viewer-bundle/assets/svelte-Cy7k_4gC.js +17 -0
  611. package/tracer-viewer-bundle/assets/svelte-Cy7k_4gC.js.map +1 -0
  612. package/tracer-viewer-bundle/assets/swift-D82vCrfD.js +13 -0
  613. package/tracer-viewer-bundle/assets/swift-D82vCrfD.js.map +1 -0
  614. package/tracer-viewer-bundle/assets/synthwave-84-CbfX1IO0.js +12 -0
  615. package/tracer-viewer-bundle/assets/synthwave-84-CbfX1IO0.js.map +1 -0
  616. package/tracer-viewer-bundle/assets/system-verilog-CnnmHF94.js +13 -0
  617. package/tracer-viewer-bundle/assets/system-verilog-CnnmHF94.js.map +1 -0
  618. package/tracer-viewer-bundle/assets/systemd-4A_iFExJ.js +13 -0
  619. package/tracer-viewer-bundle/assets/systemd-4A_iFExJ.js.map +1 -0
  620. package/tracer-viewer-bundle/assets/talonscript-CkByrt1z.js +13 -0
  621. package/tracer-viewer-bundle/assets/talonscript-CkByrt1z.js.map +1 -0
  622. package/tracer-viewer-bundle/assets/tasl-QIJgUcNo.js +13 -0
  623. package/tracer-viewer-bundle/assets/tasl-QIJgUcNo.js.map +1 -0
  624. package/tracer-viewer-bundle/assets/tcl-dwOrl1Do.js +13 -0
  625. package/tracer-viewer-bundle/assets/tcl-dwOrl1Do.js.map +1 -0
  626. package/tracer-viewer-bundle/assets/templ-DhtptRzy.js +16 -0
  627. package/tracer-viewer-bundle/assets/templ-DhtptRzy.js.map +1 -0
  628. package/tracer-viewer-bundle/assets/terraform-BETggiCN.js +13 -0
  629. package/tracer-viewer-bundle/assets/terraform-BETggiCN.js.map +1 -0
  630. package/tracer-viewer-bundle/assets/tex-idrVyKtj.js +14 -0
  631. package/tracer-viewer-bundle/assets/tex-idrVyKtj.js.map +1 -0
  632. package/tracer-viewer-bundle/assets/tokyo-night-hegEt444.js +12 -0
  633. package/tracer-viewer-bundle/assets/tokyo-night-hegEt444.js.map +1 -0
  634. package/tracer-viewer-bundle/assets/toml-vGWfd6FD.js +13 -0
  635. package/tracer-viewer-bundle/assets/toml-vGWfd6FD.js.map +1 -0
  636. package/tracer-viewer-bundle/assets/ts-tags-DQrlYJgV.js +52 -0
  637. package/tracer-viewer-bundle/assets/ts-tags-DQrlYJgV.js.map +1 -0
  638. package/tracer-viewer-bundle/assets/tsv-B_m7g4N7.js +13 -0
  639. package/tracer-viewer-bundle/assets/tsv-B_m7g4N7.js.map +1 -0
  640. package/tracer-viewer-bundle/assets/tsx-COt5Ahok.js +13 -0
  641. package/tracer-viewer-bundle/assets/tsx-COt5Ahok.js.map +1 -0
  642. package/tracer-viewer-bundle/assets/turtle-BsS91CYL.js +13 -0
  643. package/tracer-viewer-bundle/assets/turtle-BsS91CYL.js.map +1 -0
  644. package/tracer-viewer-bundle/assets/twig-xg9kU7Mw.js +36 -0
  645. package/tracer-viewer-bundle/assets/twig-xg9kU7Mw.js.map +1 -0
  646. package/tracer-viewer-bundle/assets/typescript-BPQ3VLAy.js +13 -0
  647. package/tracer-viewer-bundle/assets/typescript-BPQ3VLAy.js.map +1 -0
  648. package/tracer-viewer-bundle/assets/typespec-CAFt9gP4.js +13 -0
  649. package/tracer-viewer-bundle/assets/typespec-CAFt9gP4.js.map +1 -0
  650. package/tracer-viewer-bundle/assets/typst-DHCkPAjA.js +13 -0
  651. package/tracer-viewer-bundle/assets/typst-DHCkPAjA.js.map +1 -0
  652. package/tracer-viewer-bundle/assets/v-BcVCzyr7.js +13 -0
  653. package/tracer-viewer-bundle/assets/v-BcVCzyr7.js.map +1 -0
  654. package/tracer-viewer-bundle/assets/vala-CsfeWuGM.js +13 -0
  655. package/tracer-viewer-bundle/assets/vala-CsfeWuGM.js.map +1 -0
  656. package/tracer-viewer-bundle/assets/vb-D17OF-Vu.js +13 -0
  657. package/tracer-viewer-bundle/assets/vb-D17OF-Vu.js.map +1 -0
  658. package/tracer-viewer-bundle/assets/verilog-BQ8w6xss.js +13 -0
  659. package/tracer-viewer-bundle/assets/verilog-BQ8w6xss.js.map +1 -0
  660. package/tracer-viewer-bundle/assets/vesper-DU1UobuO.js +12 -0
  661. package/tracer-viewer-bundle/assets/vesper-DU1UobuO.js.map +1 -0
  662. package/tracer-viewer-bundle/assets/vhdl-CeAyd5Ju.js +13 -0
  663. package/tracer-viewer-bundle/assets/vhdl-CeAyd5Ju.js.map +1 -0
  664. package/tracer-viewer-bundle/assets/viml-CJc9bBzg.js +13 -0
  665. package/tracer-viewer-bundle/assets/viml-CJc9bBzg.js.map +1 -0
  666. package/tracer-viewer-bundle/assets/vitesse-black-Bkuqu6BP.js +12 -0
  667. package/tracer-viewer-bundle/assets/vitesse-black-Bkuqu6BP.js.map +1 -0
  668. package/tracer-viewer-bundle/assets/vitesse-dark-D0r3Knsf.js +12 -0
  669. package/tracer-viewer-bundle/assets/vitesse-dark-D0r3Knsf.js.map +1 -0
  670. package/tracer-viewer-bundle/assets/vitesse-light-CVO1_9PV.js +12 -0
  671. package/tracer-viewer-bundle/assets/vitesse-light-CVO1_9PV.js.map +1 -0
  672. package/tracer-viewer-bundle/assets/vue-D2xRrEX4.js +43 -0
  673. package/tracer-viewer-bundle/assets/vue-D2xRrEX4.js.map +1 -0
  674. package/tracer-viewer-bundle/assets/vue-html-AaS7Mt5G.js +14 -0
  675. package/tracer-viewer-bundle/assets/vue-html-AaS7Mt5G.js.map +1 -0
  676. package/tracer-viewer-bundle/assets/vue-vine-BoDAl6tE.js +19 -0
  677. package/tracer-viewer-bundle/assets/vue-vine-BoDAl6tE.js.map +1 -0
  678. package/tracer-viewer-bundle/assets/vyper-CDx5xZoG.js +13 -0
  679. package/tracer-viewer-bundle/assets/vyper-CDx5xZoG.js.map +1 -0
  680. package/tracer-viewer-bundle/assets/wasm-CG6Dc4jp.js +15 -0
  681. package/tracer-viewer-bundle/assets/wasm-CG6Dc4jp.js.map +1 -0
  682. package/tracer-viewer-bundle/assets/wasm-MzD3tlZU.js +13 -0
  683. package/tracer-viewer-bundle/assets/wasm-MzD3tlZU.js.map +1 -0
  684. package/tracer-viewer-bundle/assets/wenyan-BV7otONQ.js +13 -0
  685. package/tracer-viewer-bundle/assets/wenyan-BV7otONQ.js.map +1 -0
  686. package/tracer-viewer-bundle/assets/wgsl-Dx-B1_4e.js +13 -0
  687. package/tracer-viewer-bundle/assets/wgsl-Dx-B1_4e.js.map +1 -0
  688. package/tracer-viewer-bundle/assets/wikitext-BhOHFoWU.js +13 -0
  689. package/tracer-viewer-bundle/assets/wikitext-BhOHFoWU.js.map +1 -0
  690. package/tracer-viewer-bundle/assets/wit-5i3qLPDT.js +13 -0
  691. package/tracer-viewer-bundle/assets/wit-5i3qLPDT.js.map +1 -0
  692. package/tracer-viewer-bundle/assets/wolfram-lXgVvXCa.js +13 -0
  693. package/tracer-viewer-bundle/assets/wolfram-lXgVvXCa.js.map +1 -0
  694. package/tracer-viewer-bundle/assets/xml-sdJ4AIDG.js +14 -0
  695. package/tracer-viewer-bundle/assets/xml-sdJ4AIDG.js.map +1 -0
  696. package/tracer-viewer-bundle/assets/xsl-CtQFsRM5.js +15 -0
  697. package/tracer-viewer-bundle/assets/xsl-CtQFsRM5.js.map +1 -0
  698. package/tracer-viewer-bundle/assets/yaml-Buea-lGh.js +13 -0
  699. package/tracer-viewer-bundle/assets/yaml-Buea-lGh.js.map +1 -0
  700. package/tracer-viewer-bundle/assets/zenscript-DVFEvuxE.js +13 -0
  701. package/tracer-viewer-bundle/assets/zenscript-DVFEvuxE.js.map +1 -0
  702. package/tracer-viewer-bundle/assets/zig-VOosw3JB.js +13 -0
  703. package/tracer-viewer-bundle/assets/zig-VOosw3JB.js.map +1 -0
  704. package/tracer-viewer-bundle/index.html +25 -0
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  </a>
5
5
  </h1>
6
6
  <p align="center">
7
- <p align="center">Statement-level execution tracing for Playwright tests, purpose-built for AI autopilots.</p>
7
+ <p align="center">Open-source statement-level Playwright tracer, purpose-built for AI agents.</p>
8
8
  </p>
9
9
 
10
10
  <h4 align="center">
@@ -17,20 +17,34 @@
17
17
  <a href="https://github.com/heal-dev/heal-playwright-tracer/actions/workflows/ci.yml"><img src="https://github.com/heal-dev/heal-playwright-tracer/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI"></a>
18
18
  <a href="https://codecov.io/gh/heal-dev/heal-playwright-tracer"><img src="https://codecov.io/gh/heal-dev/heal-playwright-tracer/branch/main/graph/badge.svg" alt="codecov"></a>
19
19
  <a href="https://www.npmjs.com/package/@heal-dev/heal-playwright-tracer"><img src="https://img.shields.io/npm/v/@heal-dev/heal-playwright-tracer.svg" alt="npm version"></a>
20
- <a href="https://www.npmjs.com/package/@heal-dev/heal-playwright-tracer"><img src="https://img.shields.io/node/v/@heal-dev/heal-playwright-tracer.svg" alt="node"></a>
21
- <a href="https://www.npmjs.com/package/@playwright/test"><img src="https://img.shields.io/npm/dependency-version/@heal-dev/heal-playwright-tracer/peer/@playwright/test" alt="playwright"></a>
20
+ <a href="https://www.npmjs.com/package/@heal-dev/heal-playwright-tracer"><img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg" alt="node"></a>
21
+ <a href="https://www.npmjs.com/package/@playwright/test"><img src="https://img.shields.io/badge/%40playwright%2Ftest-%3E%3D1.50.0-blue.svg" alt="playwright"></a>
22
+ <a href="https://scorecard.dev/viewer/?uri=github.com/heal-dev/heal-playwright-tracer"><img src="https://api.scorecard.dev/projects/github.com/heal-dev/heal-playwright-tracer/badge" alt="OpenSSF Scorecard"></a>
22
23
  </h4>
23
24
 
24
25
  # @heal-dev/heal-playwright-tracer
25
26
 
26
- An AI-agent-first diagnostic layer for Playwright tests. Purpose-built
27
- to give an autopilot agent everything it needs to reason about _why_
28
- a test failed — statement-level execution traces with timing,
29
- variable values, call depth, serialized errors, highlighted locator
30
- screenshots, and Playwright API correlations — emitted as a
31
- structured NDJSON stream per test, alongside Playwright's own HTML
32
- report and trace viewer. Useful to humans too, but every design
33
- decision optimizes for what an LLM needs to see.
27
+ heal-playwright-tracer is an agent-first diagnostic layer for your Playwright tests. It gives agents
28
+ (and humans) everything they need to quickly analyze test results.
29
+
30
+ 👉 **Add this to your playwright config, run your tests, point Claude to the improved heal trace, get more accurate test diagnosis**
31
+
32
+ ## Why
33
+
34
+ The playwright trace doesn't contain enough data for LLM-based agents such as Claude or Open Code to analyze tests results reliably.
35
+ That's because the trace ifs focused on locator evaluation, while real-life tests also evaluate non-playwright code.
36
+ Heal adds the missing instrumentation layer to let LLM agents work their magic.
37
+ And it's useful for humans in complex test codebases, too!
38
+
39
+ | Feature | Playwright Trace | Heal Tracer | Example: What Heal Adds |
40
+ | -------------- | --------------------- | -------------------- | ----------------------------------------------------------------------------------------- |
41
+ | Granularity | Action-level | Statement-level | Shows `let x = calculate()` line-by-line, not just the final `page.click()`. |
42
+ | Data Format | ZIP/Binary | NDJSON Stream | `{"type":"step","file":"auth.spec.ts","line":12,"val":{"user":"dev"}}` |
43
+ | Visual Context | Standard screenshots | Highlighted locators | An image where the target button is outlined in a neon overlay to prove hit-box accuracy. |
44
+ | Variable State | Limited/Debugger only | Full Variable Values | Captures that `status_code` was `403` inside a hidden helper function. |
45
+ | Error Detail | Standard stack trace | Serialized Errors | A JSON object containing the DOM snapshot at the exact millisecond of the throw. |
46
+ | Timing | Action durations | Per-statement timing | Identifies that a specific `if` statement logic took `2.5s` to evaluate. |
47
+ | Correlations | Loose logs/network | API Correlations | Links `Trace_ID_99` directly to `Source_Line_45` in the NDJSON stream. |
34
48
 
35
49
  ## Install
36
50
 
@@ -38,7 +52,7 @@ decision optimizes for what an LLM needs to see.
38
52
  npm install -D @heal-dev/heal-playwright-tracer
39
53
  ```
40
54
 
41
- Wire the Babel plugin in `playwright.config.ts`.
55
+ Wire the Babel plugin **and** the reporter in `playwright.config.ts`:
42
56
 
43
57
  ```ts
44
58
  // playwright.config.ts
@@ -54,11 +68,19 @@ export default defineConfig({
54
68
  ],
55
69
  ],
56
70
  },
71
+ reporter: [['@heal-dev/heal-playwright-tracer/reporter']],
57
72
  });
58
73
  ```
59
74
 
60
- Or, if you prefer to keep the config fully typed, declare the
61
- option once at the top of the file instead of using `@ts-ignore`:
75
+ Both are required: if you wire the Babel plugin without the
76
+ reporter, the fixture fails fast on the first test of every worker.
77
+ For _why_ the reporter is mandatory (crash rescue, Playwright
78
+ attachment copy, execution-history index), see
79
+ [`docs/configuration.md`](docs/configuration.md#reporter).
80
+
81
+ If you prefer to keep the config fully typed, declare the
82
+ `babelPlugins` option once at the top of the file instead of using
83
+ `@ts-ignore`:
62
84
 
63
85
  ```ts
64
86
  declare module '@playwright/test' {
@@ -71,38 +93,67 @@ declare module '@playwright/test' {
71
93
  ```
72
94
 
73
95
  Per-test output lands at
74
- `test-results/<test>/heal-data/heal-traces.ndjson`.
96
+ `heal-traces/<executionId>/<playwrightTestId>/<attempt>/heal-traces.ndjson`.
97
+ See [Output layout](#output-layout) below for the full tree.
75
98
 
76
- ### Extend: custom exporters and lifecycles
99
+ ## Output layout
77
100
 
78
- `configureTracer` registers extra exporters (fanned out alongside
79
- the default NDJSON exporter) and per-test setup/teardown pairs —
80
- useful for shipping traces to your own backend or installing
81
- per-test globals:
101
+ Every run produces a self-contained execution dir under:
102
+ `heal-traces/<executionId>/<playwrightTestId>/<attempt>/heal-traces.ndjson`.
82
103
 
83
- ```ts
84
- // playwright.config.ts
85
- import { defineConfig } from '@playwright/test';
86
- import { configureTracer } from '@heal-dev/heal-playwright-tracer';
87
-
88
- configureTracer({
89
- exporters: [(ctx) => new MyHttpExporter(ctx.transport)],
90
- lifecycles: [
91
- () => ({
92
- setup: (ctx) => openTelemetrySession(ctx.testInfo),
93
- teardown: () => closeTelemetrySession(),
94
- }),
95
- ],
96
- });
104
+ ```
105
+ <cwd>/heal-traces/
106
+ ├── executions.ndjson # append-only run index
107
+ └── <executionId>/ # auto-generated uuidv4 per run
108
+ ├── execution.json # per-run manifest
109
+ └── <playwrightTestId>/ # Playwright testInfo.testId
110
+ └── <attempt>/ # 1-indexed
111
+ ├── heal-traces.ndjson
112
+ ├── trace.zip # if Playwright recorded one
113
+ ├── screenshots/
114
+ │ └── stmt-0001.png
115
+ └── videos/
116
+ └── video.webm
117
+ ```
97
118
 
98
- export default defineConfig({
99
- /* ... */
100
- });
119
+ Keys are shaped `{executionId}/{testId}/{attempt}/...` so the layout
120
+ maps cleanly onto any object-store key prefix if you ship traces
121
+ elsewhere later.
122
+
123
+ History is **append-only** — runs accumulate, nothing is pruned.
124
+ Clean up manually with `rm -rf heal-traces/<id>/` when needed.
125
+
126
+ > **Note:** add `heal-traces/` to your `.gitignore` — these are local
127
+ > build artefacts and should never be committed.
128
+
129
+ `<executionId>` is a uuidv4 the reporter generates at the start of
130
+ each run; the trace viewer uses it to scope and group artefacts per
131
+ run.
132
+
133
+ ## Usage
134
+
135
+ 1. After installing Heal, run your tests with the usual `npx playwright test` command.
136
+ 2. You should see `heal-traces.ndjson`.
137
+ 3. You can ask Claude or another agent to use those to understand your test results.
138
+
139
+ ### Viewing traces
140
+
141
+ A small CLI ships alongside the tracer so humans can browse the
142
+ captured traces in a local browser without setting up a Heal account:
143
+
144
+ ```sh
145
+ npx heal-tracer view
101
146
  ```
102
147
 
103
- Full surface: [`src/application/heal-config/types.ts`](src/application/heal-config/types.ts).
104
- Exporters implement [`HealTraceExporter`](src/domain/trace-event-recorder/port/heal-trace-exporter.ts)
105
- (`write(record)` + `close()`).
148
+ The CLI starts a local HTTP server on a free OS-assigned port,
149
+ reads `<cwd>/heal-traces/`, lists every recorded execution in the
150
+ header dropdown (newest first), and opens the latest one in your
151
+ default browser. Switch executions from the dropdown to inspect
152
+ history. Press Ctrl+C to stop.
153
+
154
+ ### Claude Skill
155
+
156
+ See [this Claude skill](docs/SKILL.md) for a starter.
106
157
 
107
158
  ## Sample output
108
159
 
@@ -140,82 +191,9 @@ Statements that don't touch a locator (plain JS, utility calls,
140
191
  `page.goto`) have no `screenshot` field — capture is scoped to the
141
192
  Playwright surface where it adds diagnostic signal.
142
193
 
143
- ## How it works
144
-
145
- ```
146
- Build time (per worker) Runtime (per test)
147
- ─────────────────────── ──────────────────
148
-
149
- test file instrumented test
150
- │ │
151
- ▼ ▼
152
- ┌───────────────────┐ ┌────────────────┐
153
- │ Babel plugin │ ─── instrumented ───► │ recorder │
154
- │ code-hook- │ (__enter / │ enter/ok/ │
155
- │ injector │ __ok / __throw) │ throw stream │
156
- └───────────────────┘ └────────┬───────┘
157
-
158
-
159
- ┌────────────────┐
160
- │ statement │
161
- │ projector │
162
- └────────┬───────┘
163
-
164
-
165
- playwright.config.ts ┌──────────────────┐
166
- configureTracer({ ─── extends ──────────► │ composite │
167
- exporters, │ exporter │
168
- lifecycles, └───┬──────────┬───┘
169
- }) │ │
170
- ▼ ▼
171
- NDJSON custom
172
- file exporters
173
- (HTTP, queue, …)
174
- ```
175
-
176
- The Babel plugin wraps every leaf statement with a try/catch/finally
177
- that calls three runtime hooks. The recorder pairs those calls into an
178
- event stream, the projector folds them into `HealTraceRecord`s, and
179
- a composite exporter fans them out to the default NDJSON file and
180
- any exporters registered via `configureTracer`.
181
-
182
- The plugin also rewrites `from '@playwright/test'` to
183
- `from '@heal-dev/heal-playwright-tracer'` in every instrumented file,
184
- so `test` and `expect` automatically resolve to the traced variants —
185
- no manual import swap required.
186
-
187
- ## Why CommonJS?
188
-
189
- The package ships as CommonJS (no `"type": "module"` in
190
- `package.json`, `tsc` emits `module: commonjs`). This is deliberate:
191
- Playwright's babel transform — the thing that actually loads
192
- `code-hook-injector` — is itself a CJS module and consumes the plugin
193
- via `require()`. Shipping ESM would force a dual build with no upside.
194
-
195
- ESM consumers still work — use `createRequire` in
196
- `playwright.config.ts` if you need to resolve the plugin path:
197
-
198
- ```ts
199
- // playwright.config.ts (package.json has "type": "module")
200
- import { defineConfig } from '@playwright/test';
201
- import { createRequire } from 'node:module';
202
-
203
- const require = createRequire(import.meta.url);
204
-
205
- export default defineConfig({
206
- // @ts-ignore
207
- '@playwright/test': {
208
- babelPlugins: [[require.resolve('@heal-dev/heal-playwright-tracer/code-hook-injector')]],
209
- },
210
- });
211
- ```
194
+ ## Architecture, and extending the tracer
212
195
 
213
- > **The module format of `playwright.config.ts` must match the
214
- > `"type"` field of its nearest `package.json`.** A mismatch causes
215
- > Node to route the file through the wrong loader, typically surfacing
216
- > as `ReferenceError: exports is not defined in ES module scope` —
217
- > with a stack trace that blames this plugin even though it has never
218
- > run. If that happens, fix the config format first.
196
+ See [development.md](docs/development.md)
219
197
 
220
198
  ## Caveats
221
199
 
@@ -241,5 +219,5 @@ Scope the `include` filter in `playwright.config.ts` so only your
241
219
 
242
220
  Copyright © 2026 **MYIA SAS**.
243
221
 
244
- This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.
222
+ This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**, except for the `tracer-viewer-bundle` which is a vendored, free to use version of the Heal trace viewer.
245
223
  See the [LICENSE](LICENSE) file for the full text.
@@ -9,6 +9,7 @@ const cjs_artifact_detector_1 = require("../../domain/code-hook-injector/service
9
9
  const leaf_statement_classifier_1 = require("../../domain/code-hook-injector/service/statement-analysis/leaf-statement-classifier");
10
10
  const non_wrappable_statement_1 = require("../../domain/code-hook-injector/service/statement-analysis/non-wrappable-statement");
11
11
  const for_head_declaration_detector_1 = require("../../domain/code-hook-injector/service/statement-analysis/for-head-declaration-detector");
12
+ const async_enclosing_function_detector_1 = require("../../domain/code-hook-injector/service/statement-analysis/async-enclosing-function-detector");
12
13
  const enclosing_scope_labeler_1 = require("../../domain/code-hook-injector/service/meta-fields/enclosing-scope-labeler");
13
14
  const source_snippet_extractor_1 = require("../../domain/code-hook-injector/service/meta-fields/source-snippet-extractor");
14
15
  const leading_comment_extractor_1 = require("../../domain/code-hook-injector/service/meta-fields/leading-comment-extractor");
@@ -18,6 +19,7 @@ const global_trace_call_1 = require("../../domain/code-hook-injector/service/tra
18
19
  const enter_meta_literal_1 = require("../../domain/code-hook-injector/service/trace-hook/enter-meta-literal");
19
20
  const try_finally_wrapper_1 = require("../../domain/code-hook-injector/service/trace-hook/try-finally-wrapper");
20
21
  const variable_declaration_hoister_1 = require("../../domain/code-hook-injector/service/trace-hook/variable-declaration-hoister");
22
+ const preprocess_call_1 = require("../../domain/code-hook-injector/service/trace-hook/preprocess-call");
21
23
  const global_names_1 = require("../../domain/trace-event-recorder/model/global-names");
22
24
  function codeHookInjector(api, opts = {}) {
23
25
  const t = api.types;
@@ -28,6 +30,7 @@ function codeHookInjector(api, opts = {}) {
28
30
  const findScopeName = (0, enclosing_scope_labeler_1.createEnclosingScopeLabeler)(t);
29
31
  const isNonWrappableStatement = (0, non_wrappable_statement_1.createNonWrappableStatementPredicate)(t, isGeneratedModuleStatement);
30
32
  const isForHeadDeclaration = (0, for_head_declaration_detector_1.createForHeadDeclarationDetector)(t);
33
+ const isAsyncEnclosing = (0, async_enclosing_function_detector_1.createAsyncEnclosingFunctionDetector)(t);
31
34
  const rewritePlaywrightImports = (0, playwright_import_rewriter_1.createPlaywrightImportRewriter)(t);
32
35
  const callStmt = (0, global_trace_call_1.createGlobalTraceCallBuilder)(t);
33
36
  const buildMeta = (0, enter_meta_literal_1.createEnterMetaLiteralBuilder)(t, {
@@ -40,6 +43,7 @@ function codeHookInjector(api, opts = {}) {
40
43
  });
41
44
  const { buildTryFinally, buildThrewDecl } = (0, try_finally_wrapper_1.createTryFinallyWrapperBuilder)(t, callStmt);
42
45
  const hoistVariableDeclaration = (0, variable_declaration_hoister_1.createVariableDeclarationHoister)(t);
46
+ const buildPreprocessCall = (0, preprocess_call_1.createPreprocessCallBuilder)(t);
43
47
  return {
44
48
  name: 'heal-playwright-tracer',
45
49
  visitor: {
@@ -76,6 +80,16 @@ function codeHookInjector(api, opts = {}) {
76
80
  // `applyTraceHookIfLeaf(stmtPath, state)` function in
77
81
  // ./trace-hook/ and call it alongside the future families.
78
82
  const meta = buildMeta(state, stmtPath, node, CWD);
83
+ // Optional pre-processor call inserted at the very start of
84
+ // the try body. Gated on the enclosing function being async
85
+ // because the call itself is `await __heal_preprocess?.(meta)`
86
+ // — a syntax error in sync functions. Sync statements skip
87
+ // the preprocess phase entirely and are still traced.
88
+ // `cloneNode(meta)` so the same literal isn't shared between
89
+ // the __heal_enter call and this one.
90
+ const preTryStmts = isAsyncEnclosing(stmtPath)
91
+ ? [buildPreprocessCall(global_names_1.HEAL_PREPROCESS, t.cloneNode(meta))]
92
+ : [];
79
93
  if (t.isVariableDeclaration(node)) {
80
94
  // `const x = EXPR` can't be wrapped as-is — the binding
81
95
  // would be scoped to the try block and invisible downstream.
@@ -85,7 +99,7 @@ function codeHookInjector(api, opts = {}) {
85
99
  return;
86
100
  const { hoistDecl, assignments, varsObject, bindingNames } = hoistVariableDeclaration(node);
87
101
  const okArgs = bindingNames.size ? [varsObject] : [];
88
- const { threwId, tryStmt } = buildTryFinally(stmtPath.scope, assignments, okArgs);
102
+ const { threwId, tryStmt } = buildTryFinally(stmtPath.scope, [...preTryStmts, ...assignments], okArgs);
89
103
  stmtPath.replaceWithMultiple([
90
104
  callStmt(global_names_1.HEAL_ENTER, [meta]),
91
105
  hoistDecl,
@@ -97,7 +111,7 @@ function codeHookInjector(api, opts = {}) {
97
111
  // Every other leaf statement: wrap in a block with the
98
112
  // original statement inside the try body.
99
113
  node._traced = true;
100
- const { threwId, tryStmt } = buildTryFinally(stmtPath.scope, [node]);
114
+ const { threwId, tryStmt } = buildTryFinally(stmtPath.scope, [...preTryStmts, node]);
101
115
  const wrapper = t.blockStatement([
102
116
  callStmt(global_names_1.HEAL_ENTER, [meta]),
103
117
  buildThrewDecl(threwId),
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright: (c) Myia SAS 2026.
3
+ * This file and its contents are licensed under the AGPLv3 License.
4
+ * Please see the LICENSE file at the root of this repository
5
+ */
6
+ export interface CommanderCliAdapterOptions {
7
+ /** Override default `process.argv` parser. Used by tests. */
8
+ argv?: string[];
9
+ /** Bundle dir override. Defaults to the vendored assets dir. */
10
+ bundleDir?: string;
11
+ /** Logger. Defaults to console. */
12
+ log?: (msg: string) => void;
13
+ /** Override version string. Defaults to `package.json#version`. */
14
+ version?: string;
15
+ }
16
+ export declare class CommanderCliAdapter {
17
+ private readonly program;
18
+ private readonly options;
19
+ constructor(options?: CommanderCliAdapterOptions);
20
+ private initialize;
21
+ private log;
22
+ private handleView;
23
+ parse(argv?: string[]): Promise<void>;
24
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright: (c) Myia SAS 2026.
4
+ * This file and its contents are licensed under the AGPLv3 License.
5
+ * Please see the LICENSE file at the root of this repository
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.CommanderCliAdapter = void 0;
42
+ // Tiny Commander wrapper for the trace viewer. Mirrors the shape of
43
+ // heal-cli's CommanderCliAdapter but with a single subcommand
44
+ // (`view`). Lives in `src/application/...` to keep room for further
45
+ // commands later (e.g. `prune`, `export`).
46
+ const node_child_process_1 = require("node:child_process");
47
+ const node_fs_1 = require("node:fs");
48
+ const path = __importStar(require("node:path"));
49
+ const commander_1 = require("commander");
50
+ const local_viewer_server_1 = require("../../infrastructure/local-viewer-adapter/local-viewer-server");
51
+ // Bind to port 0 — the OS picks a free ephemeral port. We then read
52
+ // the actual port back from the listening server's AddressInfo and
53
+ // use that for the printed URL and the browser-open. Avoids "port in
54
+ // use" failures when several copies of `heal-tracer view` overlap or
55
+ // when port 3000 is already taken by another dev server.
56
+ const RANDOM_PORT = 0;
57
+ const defaultBundleDir = () =>
58
+ // Resolves to <package-root>/tracer-viewer-bundle. At runtime,
59
+ // __dirname is `<package-root>/dist/application/commander-cli-adapter`
60
+ // — both during local dev and when the package is installed under
61
+ // `node_modules/@heal-dev/heal-playwright-tracer/`. Walking three
62
+ // levels up lands at the package root, where the committed bundle
63
+ // lives. In tests, the caller passes `bundleDir` explicitly.
64
+ path.resolve(__dirname, '..', '..', '..', 'tracer-viewer-bundle');
65
+ const openInBrowser = (url) => {
66
+ const cmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start ""' : 'xdg-open';
67
+ (0, node_child_process_1.exec)(`${cmd} ${JSON.stringify(url)}`);
68
+ };
69
+ class CommanderCliAdapter {
70
+ constructor(options = {}) {
71
+ this.options = options;
72
+ this.program = new commander_1.Command();
73
+ this.initialize();
74
+ }
75
+ initialize() {
76
+ this.program
77
+ .name('heal-tracer')
78
+ .description('Local viewer for heal-playwright-tracer artefacts')
79
+ .version(this.options.version ?? '0.0.0', '-v, --version', 'Show version')
80
+ .helpOption('-h, --help', 'Show this help');
81
+ this.program
82
+ .command('view')
83
+ .description('Serve the local trace viewer over an http server')
84
+ .action(async () => {
85
+ await this.handleView();
86
+ });
87
+ }
88
+ log(msg) {
89
+ (this.options.log ?? console.log.bind(console))(msg);
90
+ }
91
+ async handleView() {
92
+ const rootDir = process.cwd();
93
+ const bundleDir = this.options.bundleDir ?? defaultBundleDir();
94
+ if (!(0, node_fs_1.existsSync)(path.join(bundleDir, 'index.html'))) {
95
+ console.error(`[heal-tracer] viewer bundle not found at ${bundleDir}.\n` +
96
+ `Reinstall @heal-dev/heal-playwright-tracer.`);
97
+ process.exit(1);
98
+ }
99
+ const server = new local_viewer_server_1.LocalViewerServer({
100
+ rootDir,
101
+ bundleDir,
102
+ port: RANDOM_PORT,
103
+ log: (m) => this.log(m),
104
+ });
105
+ await server.start();
106
+ const port = server.boundPort();
107
+ if (port === null) {
108
+ console.error('[heal-tracer] server failed to bind a port');
109
+ process.exit(1);
110
+ }
111
+ const url = `http://localhost:${String(port)}`;
112
+ this.log(`✓ heal-tracer viewer running at ${url}`);
113
+ this.log(` scanning: ${rootDir} (recursive)`);
114
+ openInBrowser(url);
115
+ this.log('Press Ctrl+C to stop.');
116
+ await new Promise((resolve) => {
117
+ const shutdown = () => {
118
+ this.log('\nStopping viewer…');
119
+ server
120
+ .stop()
121
+ .catch(() => undefined)
122
+ .finally(() => resolve());
123
+ };
124
+ process.once('SIGINT', shutdown);
125
+ process.once('SIGTERM', shutdown);
126
+ });
127
+ process.exit(0);
128
+ }
129
+ async parse(argv) {
130
+ await this.program.parseAsync(argv ?? this.options.argv ?? process.argv);
131
+ }
132
+ }
133
+ exports.CommanderCliAdapter = CommanderCliAdapter;
@@ -5,4 +5,4 @@
5
5
  */
6
6
  export { configureTracer, getTracerConfig, onTestTeardown } from './registry';
7
7
  export { resetTeardownHooks, drainTeardownHooks } from './registry';
8
- export type { HealTracerConfig, HealTracerTestContext, HealTraceExporterFactory, HealTestLifecycle, HealTestLifecycleFactory, } from './types';
8
+ export type { HealTracerConfig, HealTracerTimeouts, HealTracerTestContext, HealTraceExporterFactory, HealTestLifecycle, HealTestLifecycleFactory, StatementPreProcessor, StatementPreProcessorContext, HealTracerNetworkConfig, HealTracerNetworkBodyMode, HealTracerConsoleConfig, } from './types';
@@ -10,6 +10,7 @@ exports.getTracerConfig = getTracerConfig;
10
10
  exports.onTestTeardown = onTestTeardown;
11
11
  exports.resetTeardownHooks = resetTeardownHooks;
12
12
  exports.drainTeardownHooks = drainTeardownHooks;
13
+ const logger_1 = require("../../util/logger");
13
14
  let currentConfig = {};
14
15
  let teardownHooks = [];
15
16
  /**
@@ -58,7 +59,7 @@ async function drainTeardownHooks() {
58
59
  await hook();
59
60
  }
60
61
  catch (err) {
61
- console.error('[heal-playwright-tracer] teardown hook failed:', err);
62
+ logger_1.log.error('teardown hook failed', err);
62
63
  }
63
64
  }
64
65
  }