agent-web-interface 4.0.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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +226 -0
  3. package/dist/src/browser/ensure-browser.d.ts +39 -0
  4. package/dist/src/browser/ensure-browser.d.ts.map +1 -0
  5. package/dist/src/browser/ensure-browser.js +65 -0
  6. package/dist/src/browser/ensure-browser.js.map +1 -0
  7. package/dist/src/browser/index.d.ts +8 -0
  8. package/dist/src/browser/index.d.ts.map +1 -0
  9. package/dist/src/browser/index.js +8 -0
  10. package/dist/src/browser/index.js.map +1 -0
  11. package/dist/src/browser/page-network-tracker.d.ts +96 -0
  12. package/dist/src/browser/page-network-tracker.d.ts.map +1 -0
  13. package/dist/src/browser/page-network-tracker.js +235 -0
  14. package/dist/src/browser/page-network-tracker.js.map +1 -0
  15. package/dist/src/browser/page-registry.d.ts +137 -0
  16. package/dist/src/browser/page-registry.d.ts.map +1 -0
  17. package/dist/src/browser/page-registry.js +194 -0
  18. package/dist/src/browser/page-registry.js.map +1 -0
  19. package/dist/src/browser/page-stabilization.d.ts +35 -0
  20. package/dist/src/browser/page-stabilization.d.ts.map +1 -0
  21. package/dist/src/browser/page-stabilization.js +42 -0
  22. package/dist/src/browser/page-stabilization.js.map +1 -0
  23. package/dist/src/browser/session-manager.d.ts +336 -0
  24. package/dist/src/browser/session-manager.d.ts.map +1 -0
  25. package/dist/src/browser/session-manager.js +964 -0
  26. package/dist/src/browser/session-manager.js.map +1 -0
  27. package/dist/src/cdp/cdp-client.interface.d.ts +193 -0
  28. package/dist/src/cdp/cdp-client.interface.d.ts.map +1 -0
  29. package/dist/src/cdp/cdp-client.interface.js +9 -0
  30. package/dist/src/cdp/cdp-client.interface.js.map +1 -0
  31. package/dist/src/cdp/index.d.ts +9 -0
  32. package/dist/src/cdp/index.d.ts.map +1 -0
  33. package/dist/src/cdp/index.js +8 -0
  34. package/dist/src/cdp/index.js.map +1 -0
  35. package/dist/src/cdp/puppeteer-cdp-client.d.ts +97 -0
  36. package/dist/src/cdp/puppeteer-cdp-client.d.ts.map +1 -0
  37. package/dist/src/cdp/puppeteer-cdp-client.js +273 -0
  38. package/dist/src/cdp/puppeteer-cdp-client.js.map +1 -0
  39. package/dist/src/cli/args.d.ts +35 -0
  40. package/dist/src/cli/args.d.ts.map +1 -0
  41. package/dist/src/cli/args.js +76 -0
  42. package/dist/src/cli/args.js.map +1 -0
  43. package/dist/src/delta/dom-stabilizer.d.ts +46 -0
  44. package/dist/src/delta/dom-stabilizer.d.ts.map +1 -0
  45. package/dist/src/delta/dom-stabilizer.js +121 -0
  46. package/dist/src/delta/dom-stabilizer.js.map +1 -0
  47. package/dist/src/delta/index.d.ts +8 -0
  48. package/dist/src/delta/index.d.ts.map +1 -0
  49. package/dist/src/delta/index.js +7 -0
  50. package/dist/src/delta/index.js.map +1 -0
  51. package/dist/src/factpack/action-selector.d.ts +36 -0
  52. package/dist/src/factpack/action-selector.d.ts.map +1 -0
  53. package/dist/src/factpack/action-selector.js +367 -0
  54. package/dist/src/factpack/action-selector.js.map +1 -0
  55. package/dist/src/factpack/dialog-detector.d.ts +19 -0
  56. package/dist/src/factpack/dialog-detector.d.ts.map +1 -0
  57. package/dist/src/factpack/dialog-detector.js +354 -0
  58. package/dist/src/factpack/dialog-detector.js.map +1 -0
  59. package/dist/src/factpack/form-detector.d.ts +28 -0
  60. package/dist/src/factpack/form-detector.d.ts.map +1 -0
  61. package/dist/src/factpack/form-detector.js +555 -0
  62. package/dist/src/factpack/form-detector.js.map +1 -0
  63. package/dist/src/factpack/index.d.ts +32 -0
  64. package/dist/src/factpack/index.d.ts.map +1 -0
  65. package/dist/src/factpack/index.js +73 -0
  66. package/dist/src/factpack/index.js.map +1 -0
  67. package/dist/src/factpack/page-classifier.d.ts +22 -0
  68. package/dist/src/factpack/page-classifier.d.ts.map +1 -0
  69. package/dist/src/factpack/page-classifier.js +526 -0
  70. package/dist/src/factpack/page-classifier.js.map +1 -0
  71. package/dist/src/factpack/types.d.ts +307 -0
  72. package/dist/src/factpack/types.d.ts.map +1 -0
  73. package/dist/src/factpack/types.js +12 -0
  74. package/dist/src/factpack/types.js.map +1 -0
  75. package/dist/src/form/dependency-tracker.d.ts +108 -0
  76. package/dist/src/form/dependency-tracker.d.ts.map +1 -0
  77. package/dist/src/form/dependency-tracker.js +298 -0
  78. package/dist/src/form/dependency-tracker.js.map +1 -0
  79. package/dist/src/form/field-extractor.d.ts +32 -0
  80. package/dist/src/form/field-extractor.d.ts.map +1 -0
  81. package/dist/src/form/field-extractor.js +544 -0
  82. package/dist/src/form/field-extractor.js.map +1 -0
  83. package/dist/src/form/form-detector.d.ts +103 -0
  84. package/dist/src/form/form-detector.d.ts.map +1 -0
  85. package/dist/src/form/form-detector.js +704 -0
  86. package/dist/src/form/form-detector.js.map +1 -0
  87. package/dist/src/form/form-state.d.ts +23 -0
  88. package/dist/src/form/form-state.d.ts.map +1 -0
  89. package/dist/src/form/form-state.js +39 -0
  90. package/dist/src/form/form-state.js.map +1 -0
  91. package/dist/src/form/index.d.ts +23 -0
  92. package/dist/src/form/index.d.ts.map +1 -0
  93. package/dist/src/form/index.js +27 -0
  94. package/dist/src/form/index.js.map +1 -0
  95. package/dist/src/form/runtime-value-reader.d.ts +72 -0
  96. package/dist/src/form/runtime-value-reader.d.ts.map +1 -0
  97. package/dist/src/form/runtime-value-reader.js +232 -0
  98. package/dist/src/form/runtime-value-reader.js.map +1 -0
  99. package/dist/src/form/types.d.ts +384 -0
  100. package/dist/src/form/types.d.ts.map +1 -0
  101. package/dist/src/form/types.js +17 -0
  102. package/dist/src/form/types.js.map +1 -0
  103. package/dist/src/index.d.ts +8 -0
  104. package/dist/src/index.d.ts.map +1 -0
  105. package/dist/src/index.js +212 -0
  106. package/dist/src/index.js.map +1 -0
  107. package/dist/src/lib/constants.d.ts +27 -0
  108. package/dist/src/lib/constants.d.ts.map +1 -0
  109. package/dist/src/lib/constants.js +63 -0
  110. package/dist/src/lib/constants.js.map +1 -0
  111. package/dist/src/lib/index.d.ts +12 -0
  112. package/dist/src/lib/index.d.ts.map +1 -0
  113. package/dist/src/lib/index.js +17 -0
  114. package/dist/src/lib/index.js.map +1 -0
  115. package/dist/src/lib/regions.d.ts +29 -0
  116. package/dist/src/lib/regions.d.ts.map +1 -0
  117. package/dist/src/lib/regions.js +93 -0
  118. package/dist/src/lib/regions.js.map +1 -0
  119. package/dist/src/lib/scoring.d.ts +47 -0
  120. package/dist/src/lib/scoring.d.ts.map +1 -0
  121. package/dist/src/lib/scoring.js +79 -0
  122. package/dist/src/lib/scoring.js.map +1 -0
  123. package/dist/src/lib/selectors.d.ts +42 -0
  124. package/dist/src/lib/selectors.d.ts.map +1 -0
  125. package/dist/src/lib/selectors.js +138 -0
  126. package/dist/src/lib/selectors.js.map +1 -0
  127. package/dist/src/lib/text-utils.d.ts +155 -0
  128. package/dist/src/lib/text-utils.d.ts.map +1 -0
  129. package/dist/src/lib/text-utils.js +391 -0
  130. package/dist/src/lib/text-utils.js.map +1 -0
  131. package/dist/src/observation/eid-linker.d.ts +104 -0
  132. package/dist/src/observation/eid-linker.d.ts.map +1 -0
  133. package/dist/src/observation/eid-linker.js +403 -0
  134. package/dist/src/observation/eid-linker.js.map +1 -0
  135. package/dist/src/observation/index.d.ts +12 -0
  136. package/dist/src/observation/index.d.ts.map +1 -0
  137. package/dist/src/observation/index.js +15 -0
  138. package/dist/src/observation/index.js.map +1 -0
  139. package/dist/src/observation/observation-accumulator.d.ts +58 -0
  140. package/dist/src/observation/observation-accumulator.d.ts.map +1 -0
  141. package/dist/src/observation/observation-accumulator.js +213 -0
  142. package/dist/src/observation/observation-accumulator.js.map +1 -0
  143. package/dist/src/observation/observation.types.d.ts +139 -0
  144. package/dist/src/observation/observation.types.d.ts.map +1 -0
  145. package/dist/src/observation/observation.types.js +59 -0
  146. package/dist/src/observation/observation.types.js.map +1 -0
  147. package/dist/src/observation/observer-script.d.ts +19 -0
  148. package/dist/src/observation/observer-script.d.ts.map +1 -0
  149. package/dist/src/observation/observer-script.js +569 -0
  150. package/dist/src/observation/observer-script.js.map +1 -0
  151. package/dist/src/query/index.d.ts +9 -0
  152. package/dist/src/query/index.d.ts.map +1 -0
  153. package/dist/src/query/index.js +10 -0
  154. package/dist/src/query/index.js.map +1 -0
  155. package/dist/src/query/query-engine.d.ts +111 -0
  156. package/dist/src/query/query-engine.d.ts.map +1 -0
  157. package/dist/src/query/query-engine.js +509 -0
  158. package/dist/src/query/query-engine.js.map +1 -0
  159. package/dist/src/query/types/index.d.ts +5 -0
  160. package/dist/src/query/types/index.d.ts.map +1 -0
  161. package/dist/src/query/types/index.js +5 -0
  162. package/dist/src/query/types/index.js.map +1 -0
  163. package/dist/src/query/types/query.types.d.ts +141 -0
  164. package/dist/src/query/types/query.types.d.ts.map +1 -0
  165. package/dist/src/query/types/query.types.js +19 -0
  166. package/dist/src/query/types/query.types.js.map +1 -0
  167. package/dist/src/renderer/budget-manager.d.ts +46 -0
  168. package/dist/src/renderer/budget-manager.d.ts.map +1 -0
  169. package/dist/src/renderer/budget-manager.js +133 -0
  170. package/dist/src/renderer/budget-manager.js.map +1 -0
  171. package/dist/src/renderer/constants.d.ts +38 -0
  172. package/dist/src/renderer/constants.d.ts.map +1 -0
  173. package/dist/src/renderer/constants.js +29 -0
  174. package/dist/src/renderer/constants.js.map +1 -0
  175. package/dist/src/renderer/index.d.ts +12 -0
  176. package/dist/src/renderer/index.d.ts.map +1 -0
  177. package/dist/src/renderer/index.js +16 -0
  178. package/dist/src/renderer/index.js.map +1 -0
  179. package/dist/src/renderer/section-renderers.d.ts +42 -0
  180. package/dist/src/renderer/section-renderers.d.ts.map +1 -0
  181. package/dist/src/renderer/section-renderers.js +252 -0
  182. package/dist/src/renderer/section-renderers.js.map +1 -0
  183. package/dist/src/renderer/token-counter.d.ts +45 -0
  184. package/dist/src/renderer/token-counter.d.ts.map +1 -0
  185. package/dist/src/renderer/token-counter.js +65 -0
  186. package/dist/src/renderer/token-counter.js.map +1 -0
  187. package/dist/src/renderer/types.d.ts +71 -0
  188. package/dist/src/renderer/types.d.ts.map +1 -0
  189. package/dist/src/renderer/types.js +7 -0
  190. package/dist/src/renderer/types.js.map +1 -0
  191. package/dist/src/renderer/xml-renderer.d.ts +42 -0
  192. package/dist/src/renderer/xml-renderer.d.ts.map +1 -0
  193. package/dist/src/renderer/xml-renderer.js +103 -0
  194. package/dist/src/renderer/xml-renderer.js.map +1 -0
  195. package/dist/src/server/index.d.ts +8 -0
  196. package/dist/src/server/index.d.ts.map +1 -0
  197. package/dist/src/server/index.js +8 -0
  198. package/dist/src/server/index.js.map +1 -0
  199. package/dist/src/server/mcp-server.d.ts +59 -0
  200. package/dist/src/server/mcp-server.d.ts.map +1 -0
  201. package/dist/src/server/mcp-server.js +140 -0
  202. package/dist/src/server/mcp-server.js.map +1 -0
  203. package/dist/src/server/server-config.d.ts +41 -0
  204. package/dist/src/server/server-config.d.ts.map +1 -0
  205. package/dist/src/server/server-config.js +80 -0
  206. package/dist/src/server/server-config.js.map +1 -0
  207. package/dist/src/server/session-store.d.ts +148 -0
  208. package/dist/src/server/session-store.d.ts.map +1 -0
  209. package/dist/src/server/session-store.js +224 -0
  210. package/dist/src/server/session-store.js.map +1 -0
  211. package/dist/src/shared/errors/browser-session.error.d.ts +102 -0
  212. package/dist/src/shared/errors/browser-session.error.d.ts.map +1 -0
  213. package/dist/src/shared/errors/browser-session.error.js +153 -0
  214. package/dist/src/shared/errors/browser-session.error.js.map +1 -0
  215. package/dist/src/shared/errors/index.d.ts +5 -0
  216. package/dist/src/shared/errors/index.d.ts.map +1 -0
  217. package/dist/src/shared/errors/index.js +5 -0
  218. package/dist/src/shared/errors/index.js.map +1 -0
  219. package/dist/src/shared/services/dom-transformer.service.d.ts +71 -0
  220. package/dist/src/shared/services/dom-transformer.service.d.ts.map +1 -0
  221. package/dist/src/shared/services/dom-transformer.service.js +190 -0
  222. package/dist/src/shared/services/dom-transformer.service.js.map +1 -0
  223. package/dist/src/shared/services/index.d.ts +7 -0
  224. package/dist/src/shared/services/index.d.ts.map +1 -0
  225. package/dist/src/shared/services/index.js +7 -0
  226. package/dist/src/shared/services/index.js.map +1 -0
  227. package/dist/src/shared/services/logging.service.d.ts +154 -0
  228. package/dist/src/shared/services/logging.service.d.ts.map +1 -0
  229. package/dist/src/shared/services/logging.service.js +267 -0
  230. package/dist/src/shared/services/logging.service.js.map +1 -0
  231. package/dist/src/shared/services/selector-builder.service.d.ts +53 -0
  232. package/dist/src/shared/services/selector-builder.service.d.ts.map +1 -0
  233. package/dist/src/shared/services/selector-builder.service.js +240 -0
  234. package/dist/src/shared/services/selector-builder.service.js.map +1 -0
  235. package/dist/src/shared/types/base.types.d.ts +45 -0
  236. package/dist/src/shared/types/base.types.d.ts.map +1 -0
  237. package/dist/src/shared/types/base.types.js +8 -0
  238. package/dist/src/shared/types/base.types.js.map +1 -0
  239. package/dist/src/shared/types/index.d.ts +5 -0
  240. package/dist/src/shared/types/index.d.ts.map +1 -0
  241. package/dist/src/shared/types/index.js +5 -0
  242. package/dist/src/shared/types/index.js.map +1 -0
  243. package/dist/src/snapshot/element-resolver.d.ts +102 -0
  244. package/dist/src/snapshot/element-resolver.d.ts.map +1 -0
  245. package/dist/src/snapshot/element-resolver.js +379 -0
  246. package/dist/src/snapshot/element-resolver.js.map +1 -0
  247. package/dist/src/snapshot/extractors/attribute-extractor.d.ts +40 -0
  248. package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -0
  249. package/dist/src/snapshot/extractors/attribute-extractor.js +237 -0
  250. package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -0
  251. package/dist/src/snapshot/extractors/ax-extractor.d.ts +36 -0
  252. package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -0
  253. package/dist/src/snapshot/extractors/ax-extractor.js +144 -0
  254. package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -0
  255. package/dist/src/snapshot/extractors/dom-extractor.d.ts +21 -0
  256. package/dist/src/snapshot/extractors/dom-extractor.d.ts.map +1 -0
  257. package/dist/src/snapshot/extractors/dom-extractor.js +137 -0
  258. package/dist/src/snapshot/extractors/dom-extractor.js.map +1 -0
  259. package/dist/src/snapshot/extractors/grouping-resolver.d.ts +39 -0
  260. package/dist/src/snapshot/extractors/grouping-resolver.d.ts.map +1 -0
  261. package/dist/src/snapshot/extractors/grouping-resolver.js +260 -0
  262. package/dist/src/snapshot/extractors/grouping-resolver.js.map +1 -0
  263. package/dist/src/snapshot/extractors/index.d.ts +19 -0
  264. package/dist/src/snapshot/extractors/index.d.ts.map +1 -0
  265. package/dist/src/snapshot/extractors/index.js +27 -0
  266. package/dist/src/snapshot/extractors/index.js.map +1 -0
  267. package/dist/src/snapshot/extractors/label-resolver.d.ts +44 -0
  268. package/dist/src/snapshot/extractors/label-resolver.d.ts.map +1 -0
  269. package/dist/src/snapshot/extractors/label-resolver.js +173 -0
  270. package/dist/src/snapshot/extractors/label-resolver.js.map +1 -0
  271. package/dist/src/snapshot/extractors/layout-extractor.d.ts +52 -0
  272. package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -0
  273. package/dist/src/snapshot/extractors/layout-extractor.js +382 -0
  274. package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -0
  275. package/dist/src/snapshot/extractors/locator-builder.d.ts +27 -0
  276. package/dist/src/snapshot/extractors/locator-builder.d.ts.map +1 -0
  277. package/dist/src/snapshot/extractors/locator-builder.js +223 -0
  278. package/dist/src/snapshot/extractors/locator-builder.js.map +1 -0
  279. package/dist/src/snapshot/extractors/region-resolver.d.ts +31 -0
  280. package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -0
  281. package/dist/src/snapshot/extractors/region-resolver.js +168 -0
  282. package/dist/src/snapshot/extractors/region-resolver.js.map +1 -0
  283. package/dist/src/snapshot/extractors/state-extractor.d.ts +30 -0
  284. package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -0
  285. package/dist/src/snapshot/extractors/state-extractor.js +181 -0
  286. package/dist/src/snapshot/extractors/state-extractor.js.map +1 -0
  287. package/dist/src/snapshot/extractors/types.d.ts +213 -0
  288. package/dist/src/snapshot/extractors/types.d.ts.map +1 -0
  289. package/dist/src/snapshot/extractors/types.js +145 -0
  290. package/dist/src/snapshot/extractors/types.js.map +1 -0
  291. package/dist/src/snapshot/index.d.ts +14 -0
  292. package/dist/src/snapshot/index.d.ts.map +1 -0
  293. package/dist/src/snapshot/index.js +18 -0
  294. package/dist/src/snapshot/index.js.map +1 -0
  295. package/dist/src/snapshot/snapshot-compiler.d.ts +73 -0
  296. package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -0
  297. package/dist/src/snapshot/snapshot-compiler.js +763 -0
  298. package/dist/src/snapshot/snapshot-compiler.js.map +1 -0
  299. package/dist/src/snapshot/snapshot-health.d.ts +97 -0
  300. package/dist/src/snapshot/snapshot-health.d.ts.map +1 -0
  301. package/dist/src/snapshot/snapshot-health.js +214 -0
  302. package/dist/src/snapshot/snapshot-health.js.map +1 -0
  303. package/dist/src/snapshot/snapshot-store.d.ts +137 -0
  304. package/dist/src/snapshot/snapshot-store.d.ts.map +1 -0
  305. package/dist/src/snapshot/snapshot-store.js +202 -0
  306. package/dist/src/snapshot/snapshot-store.js.map +1 -0
  307. package/dist/src/snapshot/snapshot.types.d.ts +250 -0
  308. package/dist/src/snapshot/snapshot.types.d.ts.map +1 -0
  309. package/dist/src/snapshot/snapshot.types.js +54 -0
  310. package/dist/src/snapshot/snapshot.types.js.map +1 -0
  311. package/dist/src/state/actionables-filter.d.ts +47 -0
  312. package/dist/src/state/actionables-filter.d.ts.map +1 -0
  313. package/dist/src/state/actionables-filter.js +173 -0
  314. package/dist/src/state/actionables-filter.js.map +1 -0
  315. package/dist/src/state/atoms-extractor.d.ts +23 -0
  316. package/dist/src/state/atoms-extractor.d.ts.map +1 -0
  317. package/dist/src/state/atoms-extractor.js +160 -0
  318. package/dist/src/state/atoms-extractor.js.map +1 -0
  319. package/dist/src/state/constants.d.ts +125 -0
  320. package/dist/src/state/constants.d.ts.map +1 -0
  321. package/dist/src/state/constants.js +131 -0
  322. package/dist/src/state/constants.js.map +1 -0
  323. package/dist/src/state/diff-engine.d.ts +23 -0
  324. package/dist/src/state/diff-engine.d.ts.map +1 -0
  325. package/dist/src/state/diff-engine.js +475 -0
  326. package/dist/src/state/diff-engine.js.map +1 -0
  327. package/dist/src/state/element-identity.d.ts +75 -0
  328. package/dist/src/state/element-identity.d.ts.map +1 -0
  329. package/dist/src/state/element-identity.js +129 -0
  330. package/dist/src/state/element-identity.js.map +1 -0
  331. package/dist/src/state/element-ref.types.d.ts +135 -0
  332. package/dist/src/state/element-ref.types.d.ts.map +1 -0
  333. package/dist/src/state/element-ref.types.js +13 -0
  334. package/dist/src/state/element-ref.types.js.map +1 -0
  335. package/dist/src/state/element-registry.d.ts +118 -0
  336. package/dist/src/state/element-registry.d.ts.map +1 -0
  337. package/dist/src/state/element-registry.js +222 -0
  338. package/dist/src/state/element-registry.js.map +1 -0
  339. package/dist/src/state/health.types.d.ts +93 -0
  340. package/dist/src/state/health.types.d.ts.map +1 -0
  341. package/dist/src/state/health.types.js +56 -0
  342. package/dist/src/state/health.types.js.map +1 -0
  343. package/dist/src/state/layer-detector.d.ts +23 -0
  344. package/dist/src/state/layer-detector.d.ts.map +1 -0
  345. package/dist/src/state/layer-detector.js +368 -0
  346. package/dist/src/state/layer-detector.js.map +1 -0
  347. package/dist/src/state/locator-generator.d.ts +21 -0
  348. package/dist/src/state/locator-generator.d.ts.map +1 -0
  349. package/dist/src/state/locator-generator.js +137 -0
  350. package/dist/src/state/locator-generator.js.map +1 -0
  351. package/dist/src/state/state-manager.d.ts +104 -0
  352. package/dist/src/state/state-manager.d.ts.map +1 -0
  353. package/dist/src/state/state-manager.js +618 -0
  354. package/dist/src/state/state-manager.js.map +1 -0
  355. package/dist/src/state/state-renderer.d.ts +63 -0
  356. package/dist/src/state/state-renderer.d.ts.map +1 -0
  357. package/dist/src/state/state-renderer.js +340 -0
  358. package/dist/src/state/state-renderer.js.map +1 -0
  359. package/dist/src/state/types.d.ts +353 -0
  360. package/dist/src/state/types.d.ts.map +1 -0
  361. package/dist/src/state/types.js +8 -0
  362. package/dist/src/state/types.js.map +1 -0
  363. package/dist/src/tools/browser-tools.d.ts +140 -0
  364. package/dist/src/tools/browser-tools.d.ts.map +1 -0
  365. package/dist/src/tools/browser-tools.js +657 -0
  366. package/dist/src/tools/browser-tools.js.map +1 -0
  367. package/dist/src/tools/errors.d.ts +63 -0
  368. package/dist/src/tools/errors.d.ts.map +1 -0
  369. package/dist/src/tools/errors.js +86 -0
  370. package/dist/src/tools/errors.js.map +1 -0
  371. package/dist/src/tools/execute-action.d.ts +135 -0
  372. package/dist/src/tools/execute-action.d.ts.map +1 -0
  373. package/dist/src/tools/execute-action.js +579 -0
  374. package/dist/src/tools/execute-action.js.map +1 -0
  375. package/dist/src/tools/form-tools.d.ts +109 -0
  376. package/dist/src/tools/form-tools.d.ts.map +1 -0
  377. package/dist/src/tools/form-tools.js +434 -0
  378. package/dist/src/tools/form-tools.js.map +1 -0
  379. package/dist/src/tools/index.d.ts +11 -0
  380. package/dist/src/tools/index.d.ts.map +1 -0
  381. package/dist/src/tools/index.js +49 -0
  382. package/dist/src/tools/index.js.map +1 -0
  383. package/dist/src/tools/response-builder.d.ts +98 -0
  384. package/dist/src/tools/response-builder.d.ts.map +1 -0
  385. package/dist/src/tools/response-builder.js +219 -0
  386. package/dist/src/tools/response-builder.js.map +1 -0
  387. package/dist/src/tools/tool-schemas.d.ts +2482 -0
  388. package/dist/src/tools/tool-schemas.d.ts.map +1 -0
  389. package/dist/src/tools/tool-schemas.js +606 -0
  390. package/dist/src/tools/tool-schemas.js.map +1 -0
  391. package/dist/vitest.config.d.ts +3 -0
  392. package/dist/vitest.config.d.ts.map +1 -0
  393. package/dist/vitest.config.js +16 -0
  394. package/dist/vitest.config.js.map +1 -0
  395. package/package.json +76 -0
@@ -0,0 +1,190 @@
1
+ /**
2
+ * DOM Transformer Service
3
+ *
4
+ * Transforms CDP DOM.getDocument responses into our DomTreeNode format
5
+ *
6
+ * FIXES: The stub implementation in browser-automation-mcp-server.ts:731-736
7
+ * that returned { nodes: [] } without transforming the CDP response
8
+ */
9
+ export class DomTransformerService {
10
+ /**
11
+ * Transform CDP DOM.getDocument response into our DomTreeNode format
12
+ */
13
+ transform(cdpResponse, params) {
14
+ const nodes = [];
15
+ const maxDepth = params.depth ?? -1; // -1 means infinite depth
16
+ this.transformNode(cdpResponse.root, 0, maxDepth, nodes, params.visibleOnly ?? false);
17
+ return { nodes };
18
+ }
19
+ /**
20
+ * Recursively transform a CDP node and its children
21
+ */
22
+ transformNode(cdpNode, currentDepth, maxDepth, nodes, visibleOnly) {
23
+ // For document nodes (nodeType === 9), just process children
24
+ if (cdpNode.nodeType === 9) {
25
+ if (cdpNode.children && cdpNode.children.length > 0) {
26
+ for (const child of cdpNode.children) {
27
+ this.transformNode(child, currentDepth, maxDepth, nodes, visibleOnly);
28
+ }
29
+ }
30
+ return;
31
+ }
32
+ // Skip non-element nodes unless they're text nodes
33
+ if (cdpNode.nodeType !== 1 && cdpNode.nodeType !== 3) {
34
+ return;
35
+ }
36
+ // Check depth limit
37
+ if (maxDepth >= 0 && currentDepth > maxDepth) {
38
+ return;
39
+ }
40
+ // For element nodes (nodeType === 1)
41
+ if (cdpNode.nodeType === 1) {
42
+ const attributesArray = cdpNode.attributes ?? [];
43
+ const attributesMap = this.parseAttributes(attributesArray);
44
+ // Skip if visibleOnly is true and element has display:none or visibility:hidden
45
+ if (visibleOnly && this.isHiddenByStyle(attributesMap)) {
46
+ return;
47
+ }
48
+ const node = {
49
+ id: `node-${cdpNode.nodeId}`,
50
+ nodeId: cdpNode.nodeId,
51
+ tag: cdpNode.localName && cdpNode.localName.length > 0
52
+ ? cdpNode.localName
53
+ : cdpNode.nodeName.toLowerCase(),
54
+ attrs: attributesArray,
55
+ children: [],
56
+ };
57
+ // Add text content if this is a leaf node with text
58
+ const textContent = this.extractTextContent(cdpNode);
59
+ if (textContent) {
60
+ node.text = textContent;
61
+ }
62
+ // Recursively process children
63
+ if (cdpNode.children && cdpNode.children.length > 0) {
64
+ for (const child of cdpNode.children) {
65
+ const childNodes = [];
66
+ this.transformNode(child, currentDepth + 1, maxDepth, childNodes, visibleOnly);
67
+ if (node.children) {
68
+ node.children.push(...childNodes);
69
+ }
70
+ }
71
+ }
72
+ nodes.push(node);
73
+ }
74
+ // For text nodes (nodeType === 3)
75
+ else if (cdpNode.nodeType === 3 && cdpNode.nodeValue) {
76
+ const trimmedText = cdpNode.nodeValue.trim();
77
+ if (trimmedText) {
78
+ // Text nodes are represented as special nodes
79
+ const textNode = {
80
+ id: `text-${cdpNode.nodeId}`,
81
+ tag: '#text',
82
+ attrs: [],
83
+ text: trimmedText,
84
+ children: [],
85
+ };
86
+ nodes.push(textNode);
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Parse CDP attributes array [key1, value1, key2, value2, ...] to object
92
+ */
93
+ parseAttributes(attrs) {
94
+ const result = {};
95
+ for (let i = 0; i < attrs.length; i += 2) {
96
+ result[attrs[i]] = attrs[i + 1];
97
+ }
98
+ return result;
99
+ }
100
+ /**
101
+ * Check if element is hidden by inline style
102
+ */
103
+ isHiddenByStyle(attributes) {
104
+ const style = attributes.style || '';
105
+ return (style.includes('display:none') ||
106
+ style.includes('display: none') ||
107
+ style.includes('visibility:hidden') ||
108
+ style.includes('visibility: hidden'));
109
+ }
110
+ /**
111
+ * Extract text content from immediate text children
112
+ */
113
+ extractTextContent(cdpNode) {
114
+ if (!cdpNode.children || cdpNode.children.length === 0) {
115
+ return undefined;
116
+ }
117
+ const textParts = [];
118
+ for (const child of cdpNode.children) {
119
+ if (child.nodeType === 3 && child.nodeValue) {
120
+ const trimmed = child.nodeValue.trim();
121
+ if (trimmed) {
122
+ textParts.push(trimmed);
123
+ }
124
+ }
125
+ }
126
+ if (textParts.length === 0) {
127
+ return undefined;
128
+ }
129
+ return textParts.join(' ');
130
+ }
131
+ /**
132
+ * Flatten tree structure into array (breadth-first traversal)
133
+ */
134
+ flattenTree(nodes) {
135
+ const flattened = [];
136
+ const queue = [...nodes];
137
+ while (queue.length > 0) {
138
+ const node = queue.shift();
139
+ flattened.push(node);
140
+ if (node.children && node.children.length > 0) {
141
+ queue.push(...node.children);
142
+ }
143
+ }
144
+ return flattened;
145
+ }
146
+ /**
147
+ * Filter nodes by tag name
148
+ */
149
+ filterByTag(nodes, tag) {
150
+ const results = [];
151
+ for (const node of nodes) {
152
+ if (node.tag === tag) {
153
+ results.push(node);
154
+ }
155
+ if (node.children && node.children.length > 0) {
156
+ results.push(...this.filterByTag(node.children, tag));
157
+ }
158
+ }
159
+ return results;
160
+ }
161
+ /**
162
+ * Find nodes by attribute
163
+ */
164
+ findByAttribute(nodes, attrName, attrValue) {
165
+ const results = [];
166
+ for (const node of nodes) {
167
+ // attrs is an array like [key1, value1, key2, value2, ...]
168
+ if (node.attrs) {
169
+ const index = node.attrs.indexOf(attrName);
170
+ if (index !== -1) {
171
+ if (attrValue !== undefined) {
172
+ // Check if the value matches
173
+ if (index + 1 < node.attrs.length && node.attrs[index + 1] === attrValue) {
174
+ results.push(node);
175
+ }
176
+ }
177
+ else {
178
+ // Just checking if attribute exists
179
+ results.push(node);
180
+ }
181
+ }
182
+ }
183
+ if (node.children && node.children.length > 0) {
184
+ results.push(...this.findByAttribute(node.children, attrName, attrValue));
185
+ }
186
+ }
187
+ return results;
188
+ }
189
+ }
190
+ //# sourceMappingURL=dom-transformer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-transformer.service.js","sourceRoot":"","sources":["../../../../src/shared/services/dom-transformer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared services re-exports
3
+ */
4
+ export * from './selector-builder.service.js';
5
+ export * from './dom-transformer.service.js';
6
+ export * from './logging.service.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared services re-exports
3
+ */
4
+ export * from './selector-builder.service.js';
5
+ export * from './dom-transformer.service.js';
6
+ export * from './logging.service.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Logging Service
3
+ *
4
+ * Provides structured logging with MCP protocol support
5
+ * Implements logging capability from MCP specification
6
+ */
7
+ /**
8
+ * Error severity levels (for compatibility with error handling)
9
+ */
10
+ export declare enum ErrorSeverity {
11
+ DEBUG = "debug",
12
+ INFO = "info",
13
+ WARNING = "warning",
14
+ ERROR = "error",
15
+ CRITICAL = "critical"
16
+ }
17
+ /**
18
+ * Log level type matching MCP specification (RFC 5424)
19
+ * Extended to include notice, alert, and emergency levels
20
+ */
21
+ export type LogLevel = 'debug' | 'info' | 'notice' | 'warning' | 'error' | 'critical' | 'alert' | 'emergency';
22
+ /**
23
+ * Log entry structure
24
+ */
25
+ export interface LogEntry {
26
+ level: LogLevel;
27
+ message: string;
28
+ timestamp: number;
29
+ context?: Record<string, unknown>;
30
+ error?: Error;
31
+ }
32
+ /**
33
+ * Logger interface
34
+ */
35
+ export interface Logger {
36
+ debug(message: string, context?: Record<string, unknown>): void;
37
+ info(message: string, context?: Record<string, unknown>): void;
38
+ notice(message: string, context?: Record<string, unknown>): void;
39
+ warning(message: string, context?: Record<string, unknown>): void;
40
+ error(message: string, error?: Error, context?: Record<string, unknown>): void;
41
+ critical(message: string, error?: Error, context?: Record<string, unknown>): void;
42
+ alert(message: string, error?: Error, context?: Record<string, unknown>): void;
43
+ emergency(message: string, error?: Error, context?: Record<string, unknown>): void;
44
+ }
45
+ /**
46
+ * MCP Notification sender interface
47
+ */
48
+ export interface McpNotificationSender {
49
+ sendLoggingMessage(params: {
50
+ level: LogLevel;
51
+ logger?: string;
52
+ data: Record<string, unknown>;
53
+ }): Promise<void>;
54
+ }
55
+ /**
56
+ * Logging Service
57
+ *
58
+ * Centralized logging service with configurable log levels and MCP protocol support
59
+ * Sends notifications/message notifications via MCP server when available
60
+ */
61
+ export declare class LoggingService implements Logger {
62
+ private minLevel;
63
+ private logEntries;
64
+ private maxEntries;
65
+ private mcpServer;
66
+ private loggerName;
67
+ private static readonly LOG_LEVELS;
68
+ constructor(minLevel?: LogLevel, maxEntries?: number, loggerName?: string);
69
+ /**
70
+ * Set the MCP server for sending log notifications
71
+ */
72
+ setMcpServer(server: McpNotificationSender): void;
73
+ /**
74
+ * Set minimum log level
75
+ */
76
+ setMinLevel(level: LogLevel): void;
77
+ /**
78
+ * Log a debug message
79
+ */
80
+ debug(message: string, context?: Record<string, unknown>): void;
81
+ /**
82
+ * Log an info message
83
+ */
84
+ info(message: string, context?: Record<string, unknown>): void;
85
+ /**
86
+ * Log a notice message (normal but significant)
87
+ */
88
+ notice(message: string, context?: Record<string, unknown>): void;
89
+ /**
90
+ * Log a warning message
91
+ */
92
+ warning(message: string, context?: Record<string, unknown>): void;
93
+ /**
94
+ * Log an error message
95
+ */
96
+ error(message: string, error?: Error, context?: Record<string, unknown>): void;
97
+ /**
98
+ * Log a critical message
99
+ */
100
+ critical(message: string, error?: Error, context?: Record<string, unknown>): void;
101
+ /**
102
+ * Log an alert message (action must be taken immediately)
103
+ */
104
+ alert(message: string, error?: Error, context?: Record<string, unknown>): void;
105
+ /**
106
+ * Log an emergency message (system is unusable)
107
+ */
108
+ emergency(message: string, error?: Error, context?: Record<string, unknown>): void;
109
+ /**
110
+ * Internal logging method
111
+ */
112
+ private log;
113
+ /**
114
+ * Send log entry as MCP notification
115
+ */
116
+ private sendMcpNotification;
117
+ /**
118
+ * Check if a log level should be logged based on minimum level
119
+ */
120
+ private shouldLog;
121
+ /**
122
+ * Output log entry to console (stderr)
123
+ */
124
+ private outputToConsole;
125
+ /**
126
+ * Get recent log entries
127
+ */
128
+ getRecentLogs(count?: number, minLevel?: LogLevel): LogEntry[];
129
+ /**
130
+ * Clear all log entries
131
+ */
132
+ clearLogs(): void;
133
+ /**
134
+ * Convert ErrorSeverity to LogLevel
135
+ */
136
+ static severityToLogLevel(severity: ErrorSeverity): LogLevel;
137
+ /**
138
+ * Get the logger name
139
+ */
140
+ getLoggerName(): string;
141
+ /**
142
+ * Get current minimum log level
143
+ */
144
+ getMinLevel(): LogLevel;
145
+ }
146
+ /**
147
+ * Get or create global logger instance
148
+ */
149
+ export declare function getLogger(): LoggingService;
150
+ /**
151
+ * Set global logger instance
152
+ */
153
+ export declare function setLogger(logger: LoggingService): void;
154
+ //# sourceMappingURL=logging.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/services/logging.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Logging Service
3
+ *
4
+ * Provides structured logging with MCP protocol support
5
+ * Implements logging capability from MCP specification
6
+ */
7
+ /**
8
+ * Error severity levels (for compatibility with error handling)
9
+ */
10
+ export var ErrorSeverity;
11
+ (function (ErrorSeverity) {
12
+ ErrorSeverity["DEBUG"] = "debug";
13
+ ErrorSeverity["INFO"] = "info";
14
+ ErrorSeverity["WARNING"] = "warning";
15
+ ErrorSeverity["ERROR"] = "error";
16
+ ErrorSeverity["CRITICAL"] = "critical";
17
+ })(ErrorSeverity || (ErrorSeverity = {}));
18
+ /**
19
+ * Logging Service
20
+ *
21
+ * Centralized logging service with configurable log levels and MCP protocol support
22
+ * Sends notifications/message notifications via MCP server when available
23
+ */
24
+ export class LoggingService {
25
+ minLevel;
26
+ logEntries = [];
27
+ maxEntries;
28
+ mcpServer = null;
29
+ loggerName;
30
+ // Log level hierarchy matching RFC 5424 severity levels
31
+ static LOG_LEVELS = {
32
+ debug: 0,
33
+ info: 1,
34
+ notice: 2,
35
+ warning: 3,
36
+ error: 4,
37
+ critical: 5,
38
+ alert: 6,
39
+ emergency: 7,
40
+ };
41
+ constructor(minLevel = 'info', maxEntries = 1000, loggerName = 'browser-automation') {
42
+ this.minLevel = minLevel;
43
+ this.maxEntries = maxEntries;
44
+ this.loggerName = loggerName;
45
+ }
46
+ /**
47
+ * Set the MCP server for sending log notifications
48
+ */
49
+ setMcpServer(server) {
50
+ this.mcpServer = server;
51
+ }
52
+ /**
53
+ * Set minimum log level
54
+ */
55
+ setMinLevel(level) {
56
+ this.minLevel = level;
57
+ }
58
+ /**
59
+ * Log a debug message
60
+ */
61
+ debug(message, context) {
62
+ this.log('debug', message, context);
63
+ }
64
+ /**
65
+ * Log an info message
66
+ */
67
+ info(message, context) {
68
+ this.log('info', message, context);
69
+ }
70
+ /**
71
+ * Log a notice message (normal but significant)
72
+ */
73
+ notice(message, context) {
74
+ this.log('notice', message, context);
75
+ }
76
+ /**
77
+ * Log a warning message
78
+ */
79
+ warning(message, context) {
80
+ this.log('warning', message, context);
81
+ }
82
+ /**
83
+ * Log an error message
84
+ */
85
+ error(message, error, context) {
86
+ this.log('error', message, context, error);
87
+ }
88
+ /**
89
+ * Log a critical message
90
+ */
91
+ critical(message, error, context) {
92
+ this.log('critical', message, context, error);
93
+ }
94
+ /**
95
+ * Log an alert message (action must be taken immediately)
96
+ */
97
+ alert(message, error, context) {
98
+ this.log('alert', message, context, error);
99
+ }
100
+ /**
101
+ * Log an emergency message (system is unusable)
102
+ */
103
+ emergency(message, error, context) {
104
+ this.log('emergency', message, context, error);
105
+ }
106
+ /**
107
+ * Internal logging method
108
+ */
109
+ log(level, message, context, error) {
110
+ // Check if this log level should be logged
111
+ if (!this.shouldLog(level)) {
112
+ return;
113
+ }
114
+ const entry = {
115
+ level,
116
+ message,
117
+ timestamp: Date.now(),
118
+ context,
119
+ error,
120
+ };
121
+ // Store log entry
122
+ this.logEntries.push(entry);
123
+ // Trim old entries if needed
124
+ if (this.logEntries.length > this.maxEntries) {
125
+ this.logEntries.shift();
126
+ }
127
+ // Send via MCP notification if server is available
128
+ if (this.mcpServer) {
129
+ void this.sendMcpNotification(entry);
130
+ }
131
+ else {
132
+ // Fallback to console.error if MCP server not available
133
+ this.outputToConsole(entry);
134
+ }
135
+ }
136
+ /**
137
+ * Send log entry as MCP notification
138
+ */
139
+ async sendMcpNotification(entry) {
140
+ if (!this.mcpServer)
141
+ return;
142
+ try {
143
+ // Build data object for MCP notification
144
+ const data = {
145
+ message: entry.message,
146
+ timestamp: new Date(entry.timestamp).toISOString(),
147
+ };
148
+ // Add context if present
149
+ if (entry.context && Object.keys(entry.context).length > 0) {
150
+ data.context = entry.context;
151
+ }
152
+ // Add error details if present
153
+ if (entry.error) {
154
+ data.error = {
155
+ message: entry.error.message,
156
+ name: entry.error.name,
157
+ stack: entry.error.stack,
158
+ };
159
+ }
160
+ // Send notifications/message notification
161
+ await this.mcpServer.sendLoggingMessage({
162
+ level: entry.level,
163
+ logger: this.loggerName,
164
+ data,
165
+ });
166
+ }
167
+ catch (error) {
168
+ // If MCP notification fails, fall back to console
169
+ // Don't use this.log to avoid infinite recursion
170
+ console.error('[LoggingService] Failed to send MCP notification:', error);
171
+ this.outputToConsole(entry);
172
+ }
173
+ }
174
+ /**
175
+ * Check if a log level should be logged based on minimum level
176
+ */
177
+ shouldLog(level) {
178
+ return LoggingService.LOG_LEVELS[level] >= LoggingService.LOG_LEVELS[this.minLevel];
179
+ }
180
+ /**
181
+ * Output log entry to console (stderr)
182
+ */
183
+ outputToConsole(entry) {
184
+ const timestamp = new Date(entry.timestamp).toISOString();
185
+ const levelStr = entry.level.toUpperCase().padEnd(8);
186
+ let output = `[${timestamp}] ${levelStr} ${entry.message}`;
187
+ if (entry.context && Object.keys(entry.context).length > 0) {
188
+ output += `\n Context: ${JSON.stringify(entry.context)}`;
189
+ }
190
+ if (entry.error) {
191
+ output += `\n Error: ${entry.error.message}`;
192
+ if (entry.error.stack) {
193
+ output += `\n Stack: ${entry.error.stack}`;
194
+ }
195
+ }
196
+ // Use console.error to write to stderr (stdout is reserved for MCP protocol)
197
+ console.error(output);
198
+ }
199
+ /**
200
+ * Get recent log entries
201
+ */
202
+ getRecentLogs(count = 100, minLevel) {
203
+ let logs = this.logEntries;
204
+ // Filter by minimum level if specified
205
+ if (minLevel) {
206
+ const minLevelValue = LoggingService.LOG_LEVELS[minLevel];
207
+ logs = logs.filter((entry) => LoggingService.LOG_LEVELS[entry.level] >= minLevelValue);
208
+ }
209
+ // Return most recent N entries
210
+ return logs.slice(-count);
211
+ }
212
+ /**
213
+ * Clear all log entries
214
+ */
215
+ clearLogs() {
216
+ this.logEntries = [];
217
+ }
218
+ /**
219
+ * Convert ErrorSeverity to LogLevel
220
+ */
221
+ static severityToLogLevel(severity) {
222
+ switch (severity) {
223
+ case ErrorSeverity.DEBUG:
224
+ return 'debug';
225
+ case ErrorSeverity.INFO:
226
+ return 'info';
227
+ case ErrorSeverity.WARNING:
228
+ return 'warning';
229
+ case ErrorSeverity.ERROR:
230
+ return 'error';
231
+ case ErrorSeverity.CRITICAL:
232
+ return 'critical';
233
+ default:
234
+ return 'info';
235
+ }
236
+ }
237
+ /**
238
+ * Get the logger name
239
+ */
240
+ getLoggerName() {
241
+ return this.loggerName;
242
+ }
243
+ /**
244
+ * Get current minimum log level
245
+ */
246
+ getMinLevel() {
247
+ return this.minLevel;
248
+ }
249
+ }
250
+ /**
251
+ * Global logger instance (singleton pattern)
252
+ */
253
+ let globalLogger = null;
254
+ /**
255
+ * Get or create global logger instance
256
+ */
257
+ export function getLogger() {
258
+ globalLogger ??= new LoggingService(process.env.LOG_LEVEL || 'info');
259
+ return globalLogger;
260
+ }
261
+ /**
262
+ * Set global logger instance
263
+ */
264
+ export function setLogger(logger) {
265
+ globalLogger = logger;
266
+ }
267
+ //# sourceMappingURL=logging.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.service.js","sourceRoot":"","sources":["../../../../src/shared/services/logging.service.ts"],"names":[],"mappings":"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"}