agent-web-interface 4.3.0 → 4.5.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 (461) hide show
  1. package/dist/src/browser/browser-session-config.d.ts +33 -0
  2. package/dist/src/browser/browser-session-config.d.ts.map +1 -0
  3. package/dist/src/browser/browser-session-config.js +24 -0
  4. package/dist/src/browser/browser-session-config.js.map +1 -0
  5. package/dist/src/browser/connection-utils.d.ts +48 -0
  6. package/dist/src/browser/connection-utils.d.ts.map +1 -0
  7. package/dist/src/browser/connection-utils.js +129 -0
  8. package/dist/src/browser/connection-utils.js.map +1 -0
  9. package/dist/src/browser/ensure-browser.d.ts +12 -27
  10. package/dist/src/browser/ensure-browser.d.ts.map +1 -1
  11. package/dist/src/browser/ensure-browser.js +104 -37
  12. package/dist/src/browser/ensure-browser.js.map +1 -1
  13. package/dist/src/browser/index.d.ts +4 -1
  14. package/dist/src/browser/index.d.ts.map +1 -1
  15. package/dist/src/browser/index.js +3 -1
  16. package/dist/src/browser/index.js.map +1 -1
  17. package/dist/src/browser/session-manager.d.ts +21 -89
  18. package/dist/src/browser/session-manager.d.ts.map +1 -1
  19. package/dist/src/browser/session-manager.js +122 -132
  20. package/dist/src/browser/session-manager.js.map +1 -1
  21. package/dist/src/browser/session-manager.types.d.ts +102 -0
  22. package/dist/src/browser/session-manager.types.d.ts.map +1 -0
  23. package/dist/src/browser/session-manager.types.js +11 -0
  24. package/dist/src/browser/session-manager.types.js.map +1 -0
  25. package/dist/src/cli/args.d.ts +12 -18
  26. package/dist/src/cli/args.d.ts.map +1 -1
  27. package/dist/src/cli/args.js +35 -40
  28. package/dist/src/cli/args.js.map +1 -1
  29. package/dist/src/form/constraint-extraction.d.ts +36 -0
  30. package/dist/src/form/constraint-extraction.d.ts.map +1 -0
  31. package/dist/src/form/constraint-extraction.js +117 -0
  32. package/dist/src/form/constraint-extraction.js.map +1 -0
  33. package/dist/src/form/field-extractor.d.ts.map +1 -1
  34. package/dist/src/form/field-extractor.js +16 -450
  35. package/dist/src/form/field-extractor.js.map +1 -1
  36. package/dist/src/form/field-state-extractor.d.ts +22 -0
  37. package/dist/src/form/field-state-extractor.d.ts.map +1 -0
  38. package/dist/src/form/field-state-extractor.js +55 -0
  39. package/dist/src/form/field-state-extractor.js.map +1 -0
  40. package/dist/src/form/form-actions.d.ts +45 -0
  41. package/dist/src/form/form-actions.d.ts.map +1 -0
  42. package/dist/src/form/form-actions.js +108 -0
  43. package/dist/src/form/form-actions.js.map +1 -0
  44. package/dist/src/form/form-detector.d.ts +0 -36
  45. package/dist/src/form/form-detector.d.ts.map +1 -1
  46. package/dist/src/form/form-detector.js +11 -376
  47. package/dist/src/form/form-detector.js.map +1 -1
  48. package/dist/src/form/form-state.d.ts.map +1 -1
  49. package/dist/src/form/form-state.js +16 -4
  50. package/dist/src/form/form-state.js.map +1 -1
  51. package/dist/src/form/input-clustering.d.ts +15 -0
  52. package/dist/src/form/input-clustering.d.ts.map +1 -0
  53. package/dist/src/form/input-clustering.js +61 -0
  54. package/dist/src/form/input-clustering.js.map +1 -0
  55. package/dist/src/form/intent-inference.d.ts +28 -0
  56. package/dist/src/form/intent-inference.d.ts.map +1 -0
  57. package/dist/src/form/intent-inference.js +137 -0
  58. package/dist/src/form/intent-inference.js.map +1 -0
  59. package/dist/src/form/purpose-inference.d.ts +50 -0
  60. package/dist/src/form/purpose-inference.d.ts.map +1 -0
  61. package/dist/src/form/purpose-inference.js +313 -0
  62. package/dist/src/form/purpose-inference.js.map +1 -0
  63. package/dist/src/form/submit-detection.d.ts +36 -0
  64. package/dist/src/form/submit-detection.d.ts.map +1 -0
  65. package/dist/src/form/submit-detection.js +101 -0
  66. package/dist/src/form/submit-detection.js.map +1 -0
  67. package/dist/src/form/types.d.ts +2 -2
  68. package/dist/src/gateway/http-gateway.d.ts +56 -0
  69. package/dist/src/gateway/http-gateway.d.ts.map +1 -0
  70. package/dist/src/gateway/http-gateway.js +229 -0
  71. package/dist/src/gateway/http-gateway.js.map +1 -0
  72. package/dist/src/gateway/json-rpc-errors.d.ts +6 -0
  73. package/dist/src/gateway/json-rpc-errors.d.ts.map +1 -0
  74. package/dist/src/gateway/json-rpc-errors.js +11 -0
  75. package/dist/src/gateway/json-rpc-errors.js.map +1 -0
  76. package/dist/src/gateway/session-router.d.ts +80 -0
  77. package/dist/src/gateway/session-router.d.ts.map +1 -0
  78. package/dist/src/gateway/session-router.js +177 -0
  79. package/dist/src/gateway/session-router.js.map +1 -0
  80. package/dist/src/http-entry.d.ts +20 -0
  81. package/dist/src/http-entry.d.ts.map +1 -0
  82. package/dist/src/http-entry.js +112 -0
  83. package/dist/src/http-entry.js.map +1 -0
  84. package/dist/src/index.d.ts +1 -10
  85. package/dist/src/index.d.ts.map +1 -1
  86. package/dist/src/index.js +25 -227
  87. package/dist/src/index.js.map +1 -1
  88. package/dist/src/lib/text-utils.d.ts +0 -24
  89. package/dist/src/lib/text-utils.d.ts.map +1 -1
  90. package/dist/src/lib/text-utils.js +2 -38
  91. package/dist/src/lib/text-utils.js.map +1 -1
  92. package/dist/src/observation/eid-linker.d.ts.map +1 -1
  93. package/dist/src/observation/eid-linker.js +1 -21
  94. package/dist/src/observation/eid-linker.js.map +1 -1
  95. package/dist/src/observation/observation-accumulator.d.ts +1 -1
  96. package/dist/src/observation/observation-accumulator.js +1 -1
  97. package/dist/src/observation/observer-script.d.ts +1 -1
  98. package/dist/src/observation/observer-script.d.ts.map +1 -1
  99. package/dist/src/observation/observer-script.js +129 -7
  100. package/dist/src/observation/observer-script.js.map +1 -1
  101. package/dist/src/query/disambiguation.d.ts +18 -0
  102. package/dist/src/query/disambiguation.d.ts.map +1 -0
  103. package/dist/src/query/disambiguation.js +123 -0
  104. package/dist/src/query/disambiguation.js.map +1 -0
  105. package/dist/src/query/fuzzy-match.d.ts +17 -0
  106. package/dist/src/query/fuzzy-match.d.ts.map +1 -0
  107. package/dist/src/query/fuzzy-match.js +34 -0
  108. package/dist/src/query/fuzzy-match.js.map +1 -0
  109. package/dist/src/query/index.d.ts +3 -0
  110. package/dist/src/query/index.d.ts.map +1 -1
  111. package/dist/src/query/index.js +6 -0
  112. package/dist/src/query/index.js.map +1 -1
  113. package/dist/src/query/query-engine.d.ts +0 -35
  114. package/dist/src/query/query-engine.d.ts.map +1 -1
  115. package/dist/src/query/query-engine.js +9 -309
  116. package/dist/src/query/query-engine.js.map +1 -1
  117. package/dist/src/query/scoring.d.ts +52 -0
  118. package/dist/src/query/scoring.d.ts.map +1 -0
  119. package/dist/src/query/scoring.js +162 -0
  120. package/dist/src/query/scoring.js.map +1 -0
  121. package/dist/src/server/index.d.ts +0 -1
  122. package/dist/src/server/index.d.ts.map +1 -1
  123. package/dist/src/server/index.js +0 -1
  124. package/dist/src/server/index.js.map +1 -1
  125. package/dist/src/server/mcp-server.d.ts +6 -2
  126. package/dist/src/server/mcp-server.d.ts.map +1 -1
  127. package/dist/src/server/mcp-server.js +3 -91
  128. package/dist/src/server/mcp-server.js.map +1 -1
  129. package/dist/src/server/server-config.d.ts +4 -20
  130. package/dist/src/server/server-config.d.ts.map +1 -1
  131. package/dist/src/server/server-config.js +6 -50
  132. package/dist/src/server/server-config.js.map +1 -1
  133. package/dist/src/server/tool-registrar.types.d.ts +25 -0
  134. package/dist/src/server/tool-registrar.types.d.ts.map +1 -0
  135. package/dist/src/server/tool-registrar.types.js +10 -0
  136. package/dist/src/server/tool-registrar.types.js.map +1 -0
  137. package/dist/src/server/tool-result-handler.d.ts +61 -0
  138. package/dist/src/server/tool-result-handler.d.ts.map +1 -0
  139. package/dist/src/server/tool-result-handler.js +137 -0
  140. package/dist/src/server/tool-result-handler.js.map +1 -0
  141. package/dist/src/session/session-controller.d.ts +123 -0
  142. package/dist/src/session/session-controller.d.ts.map +1 -0
  143. package/dist/src/session/session-controller.js +273 -0
  144. package/dist/src/session/session-controller.js.map +1 -0
  145. package/dist/src/shared/services/index.d.ts +0 -2
  146. package/dist/src/shared/services/index.d.ts.map +1 -1
  147. package/dist/src/shared/services/index.js +0 -2
  148. package/dist/src/shared/services/index.js.map +1 -1
  149. package/dist/src/shared/version.d.ts +10 -0
  150. package/dist/src/shared/version.d.ts.map +1 -0
  151. package/dist/src/shared/version.js +32 -0
  152. package/dist/src/shared/version.js.map +1 -0
  153. package/dist/src/snapshot/element-resolver.d.ts +27 -15
  154. package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
  155. package/dist/src/snapshot/element-resolver.js +196 -91
  156. package/dist/src/snapshot/element-resolver.js.map +1 -1
  157. package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -1
  158. package/dist/src/snapshot/extractors/attribute-extractor.js +4 -0
  159. package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -1
  160. package/dist/src/snapshot/extractors/ax-extractor.d.ts +1 -1
  161. package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -1
  162. package/dist/src/snapshot/extractors/ax-extractor.js +4 -1
  163. package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -1
  164. package/dist/src/snapshot/extractors/index.d.ts +1 -1
  165. package/dist/src/snapshot/extractors/index.d.ts.map +1 -1
  166. package/dist/src/snapshot/extractors/index.js +1 -1
  167. package/dist/src/snapshot/extractors/index.js.map +1 -1
  168. package/dist/src/snapshot/extractors/layout-extractor.d.ts +9 -7
  169. package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -1
  170. package/dist/src/snapshot/extractors/layout-extractor.js +34 -19
  171. package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -1
  172. package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -1
  173. package/dist/src/snapshot/extractors/region-resolver.js +8 -0
  174. package/dist/src/snapshot/extractors/region-resolver.js.map +1 -1
  175. package/dist/src/snapshot/extractors/state-extractor.d.ts +2 -2
  176. package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -1
  177. package/dist/src/snapshot/extractors/state-extractor.js +22 -2
  178. package/dist/src/snapshot/extractors/state-extractor.js.map +1 -1
  179. package/dist/src/snapshot/extractors/types.d.ts +14 -0
  180. package/dist/src/snapshot/extractors/types.d.ts.map +1 -1
  181. package/dist/src/snapshot/extractors/types.js +16 -0
  182. package/dist/src/snapshot/extractors/types.js.map +1 -1
  183. package/dist/src/snapshot/frame-context.d.ts +68 -0
  184. package/dist/src/snapshot/frame-context.d.ts.map +1 -0
  185. package/dist/src/snapshot/frame-context.js +131 -0
  186. package/dist/src/snapshot/frame-context.js.map +1 -0
  187. package/dist/src/snapshot/heading-index.d.ts +28 -0
  188. package/dist/src/snapshot/heading-index.d.ts.map +1 -0
  189. package/dist/src/snapshot/heading-index.js +108 -0
  190. package/dist/src/snapshot/heading-index.js.map +1 -0
  191. package/dist/src/snapshot/index.d.ts +5 -3
  192. package/dist/src/snapshot/index.d.ts.map +1 -1
  193. package/dist/src/snapshot/index.js +3 -2
  194. package/dist/src/snapshot/index.js.map +1 -1
  195. package/dist/src/snapshot/kind-mapping.d.ts +30 -0
  196. package/dist/src/snapshot/kind-mapping.d.ts.map +1 -0
  197. package/dist/src/snapshot/kind-mapping.js +114 -0
  198. package/dist/src/snapshot/kind-mapping.js.map +1 -0
  199. package/dist/src/snapshot/node-filter.d.ts +31 -0
  200. package/dist/src/snapshot/node-filter.d.ts.map +1 -0
  201. package/dist/src/snapshot/node-filter.js +137 -0
  202. package/dist/src/snapshot/node-filter.js.map +1 -0
  203. package/dist/src/snapshot/node-synthesizer.d.ts +62 -0
  204. package/dist/src/snapshot/node-synthesizer.d.ts.map +1 -0
  205. package/dist/src/snapshot/node-synthesizer.js +185 -0
  206. package/dist/src/snapshot/node-synthesizer.js.map +1 -0
  207. package/dist/src/snapshot/snapshot-compiler.d.ts +2 -36
  208. package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -1
  209. package/dist/src/snapshot/snapshot-compiler.js +40 -549
  210. package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
  211. package/dist/src/snapshot/snapshot.types.d.ts +17 -3
  212. package/dist/src/snapshot/snapshot.types.d.ts.map +1 -1
  213. package/dist/src/snapshot/snapshot.types.js +8 -0
  214. package/dist/src/snapshot/snapshot.types.js.map +1 -1
  215. package/dist/src/state/actionables-filter.d.ts +5 -0
  216. package/dist/src/state/actionables-filter.d.ts.map +1 -1
  217. package/dist/src/state/actionables-filter.js +28 -6
  218. package/dist/src/state/actionables-filter.js.map +1 -1
  219. package/dist/src/state/atoms-extractor.d.ts.map +1 -1
  220. package/dist/src/state/atoms-extractor.js +3 -23
  221. package/dist/src/state/atoms-extractor.js.map +1 -1
  222. package/dist/src/state/diff-engine.d.ts.map +1 -1
  223. package/dist/src/state/diff-engine.js +9 -36
  224. package/dist/src/state/diff-engine.js.map +1 -1
  225. package/dist/src/state/element-identity.d.ts +3 -6
  226. package/dist/src/state/element-identity.d.ts.map +1 -1
  227. package/dist/src/state/element-identity.js +10 -7
  228. package/dist/src/state/element-identity.js.map +1 -1
  229. package/dist/src/state/element-ref.types.d.ts +5 -27
  230. package/dist/src/state/element-ref.types.d.ts.map +1 -1
  231. package/dist/src/state/element-registry.d.ts.map +1 -1
  232. package/dist/src/state/element-registry.js +6 -4
  233. package/dist/src/state/element-registry.js.map +1 -1
  234. package/dist/src/state/hash-utils.d.ts +24 -0
  235. package/dist/src/state/hash-utils.d.ts.map +1 -0
  236. package/dist/src/state/hash-utils.js +41 -0
  237. package/dist/src/state/hash-utils.js.map +1 -0
  238. package/dist/src/state/layer-detector.d.ts.map +1 -1
  239. package/dist/src/state/layer-detector.js +15 -286
  240. package/dist/src/state/layer-detector.js.map +1 -1
  241. package/dist/src/state/layer-detectors/drawer-detector.d.ts +32 -0
  242. package/dist/src/state/layer-detectors/drawer-detector.d.ts.map +1 -0
  243. package/dist/src/state/layer-detectors/drawer-detector.js +96 -0
  244. package/dist/src/state/layer-detectors/drawer-detector.js.map +1 -0
  245. package/dist/src/state/layer-detectors/index.d.ts +10 -0
  246. package/dist/src/state/layer-detectors/index.d.ts.map +1 -0
  247. package/dist/src/state/layer-detectors/index.js +10 -0
  248. package/dist/src/state/layer-detectors/index.js.map +1 -0
  249. package/dist/src/state/layer-detectors/modal-detector.d.ts +30 -0
  250. package/dist/src/state/layer-detectors/modal-detector.d.ts.map +1 -0
  251. package/dist/src/state/layer-detectors/modal-detector.js +127 -0
  252. package/dist/src/state/layer-detectors/modal-detector.js.map +1 -0
  253. package/dist/src/state/layer-detectors/popover-detector.d.ts +20 -0
  254. package/dist/src/state/layer-detectors/popover-detector.d.ts.map +1 -0
  255. package/dist/src/state/layer-detectors/popover-detector.js +76 -0
  256. package/dist/src/state/layer-detectors/popover-detector.js.map +1 -0
  257. package/dist/src/state/layer-detectors/toast-detector.d.ts +24 -0
  258. package/dist/src/state/layer-detectors/toast-detector.d.ts.map +1 -0
  259. package/dist/src/state/layer-detectors/toast-detector.js +48 -0
  260. package/dist/src/state/layer-detectors/toast-detector.js.map +1 -0
  261. package/dist/src/state/region-mapping.d.ts +13 -0
  262. package/dist/src/state/region-mapping.d.ts.map +1 -0
  263. package/dist/src/state/region-mapping.js +25 -0
  264. package/dist/src/state/region-mapping.js.map +1 -0
  265. package/dist/src/state/state-manager.d.ts.map +1 -1
  266. package/dist/src/state/state-manager.js +11 -193
  267. package/dist/src/state/state-manager.js.map +1 -1
  268. package/dist/src/state/state-renderer.d.ts.map +1 -1
  269. package/dist/src/state/state-renderer.js +17 -3
  270. package/dist/src/state/state-renderer.js.map +1 -1
  271. package/dist/src/state/types.d.ts +10 -5
  272. package/dist/src/state/types.d.ts.map +1 -1
  273. package/dist/src/state/url-sanitization.d.ts +22 -0
  274. package/dist/src/state/url-sanitization.d.ts.map +1 -0
  275. package/dist/src/state/url-sanitization.js +76 -0
  276. package/dist/src/state/url-sanitization.js.map +1 -0
  277. package/dist/src/state/value-masking.d.ts +36 -0
  278. package/dist/src/state/value-masking.d.ts.map +1 -0
  279. package/dist/src/state/value-masking.js +86 -0
  280. package/dist/src/state/value-masking.js.map +1 -0
  281. package/dist/src/tools/action-context.d.ts +55 -0
  282. package/dist/src/tools/action-context.d.ts.map +1 -0
  283. package/dist/src/tools/action-context.js +69 -0
  284. package/dist/src/tools/action-context.js.map +1 -0
  285. package/dist/src/tools/action-stabilization.d.ts +48 -0
  286. package/dist/src/tools/action-stabilization.d.ts.map +1 -0
  287. package/dist/src/tools/action-stabilization.js +93 -0
  288. package/dist/src/tools/action-stabilization.js.map +1 -0
  289. package/dist/src/tools/browser-tools.d.ts +9 -167
  290. package/dist/src/tools/browser-tools.d.ts.map +1 -1
  291. package/dist/src/tools/browser-tools.js +15 -651
  292. package/dist/src/tools/browser-tools.js.map +1 -1
  293. package/dist/src/tools/canvas-tools.d.ts +2 -1
  294. package/dist/src/tools/canvas-tools.d.ts.map +1 -1
  295. package/dist/src/tools/canvas-tools.js +5 -7
  296. package/dist/src/tools/canvas-tools.js.map +1 -1
  297. package/dist/src/tools/effect-tracker.d.ts +25 -0
  298. package/dist/src/tools/effect-tracker.d.ts.map +1 -0
  299. package/dist/src/tools/effect-tracker.js +69 -0
  300. package/dist/src/tools/effect-tracker.js.map +1 -0
  301. package/dist/src/tools/errors.d.ts +2 -34
  302. package/dist/src/tools/errors.d.ts.map +1 -1
  303. package/dist/src/tools/errors.js +1 -44
  304. package/dist/src/tools/errors.js.map +1 -1
  305. package/dist/src/tools/execute-action.d.ts +5 -34
  306. package/dist/src/tools/execute-action.d.ts.map +1 -1
  307. package/dist/src/tools/execute-action.js +37 -297
  308. package/dist/src/tools/execute-action.js.map +1 -1
  309. package/dist/src/tools/form-tools.d.ts +5 -10
  310. package/dist/src/tools/form-tools.d.ts.map +1 -1
  311. package/dist/src/tools/form-tools.js +42 -22
  312. package/dist/src/tools/form-tools.js.map +1 -1
  313. package/dist/src/tools/index.d.ts +6 -6
  314. package/dist/src/tools/index.d.ts.map +1 -1
  315. package/dist/src/tools/index.js +16 -17
  316. package/dist/src/tools/index.js.map +1 -1
  317. package/dist/src/tools/interaction-tools.d.ts +47 -0
  318. package/dist/src/tools/interaction-tools.d.ts.map +1 -0
  319. package/dist/src/tools/interaction-tools.js +135 -0
  320. package/dist/src/tools/interaction-tools.js.map +1 -0
  321. package/dist/src/tools/navigation-detection.d.ts +31 -0
  322. package/dist/src/tools/navigation-detection.d.ts.map +1 -0
  323. package/dist/src/tools/navigation-detection.js +46 -0
  324. package/dist/src/tools/navigation-detection.js.map +1 -0
  325. package/dist/src/tools/navigation-tools.d.ts +51 -0
  326. package/dist/src/tools/navigation-tools.d.ts.map +1 -0
  327. package/dist/src/tools/navigation-tools.js +171 -0
  328. package/dist/src/tools/navigation-tools.js.map +1 -0
  329. package/dist/src/tools/observation-tools.d.ts +54 -0
  330. package/dist/src/tools/observation-tools.d.ts.map +1 -0
  331. package/dist/src/tools/observation-tools.js +243 -0
  332. package/dist/src/tools/observation-tools.js.map +1 -0
  333. package/dist/src/tools/readability-tools.d.ts +16 -0
  334. package/dist/src/tools/readability-tools.d.ts.map +1 -0
  335. package/dist/src/tools/readability-tools.js +45 -0
  336. package/dist/src/tools/readability-tools.js.map +1 -0
  337. package/dist/src/tools/response-builder.d.ts +20 -32
  338. package/dist/src/tools/response-builder.d.ts.map +1 -1
  339. package/dist/src/tools/response-builder.js +32 -48
  340. package/dist/src/tools/response-builder.js.map +1 -1
  341. package/dist/src/tools/stale-element-retry.d.ts +37 -0
  342. package/dist/src/tools/stale-element-retry.d.ts.map +1 -0
  343. package/dist/src/tools/stale-element-retry.js +103 -0
  344. package/dist/src/tools/stale-element-retry.js.map +1 -0
  345. package/dist/src/tools/tool-context.d.ts +4 -36
  346. package/dist/src/tools/tool-context.d.ts.map +1 -1
  347. package/dist/src/tools/tool-context.js +6 -75
  348. package/dist/src/tools/tool-context.js.map +1 -1
  349. package/dist/src/tools/tool-context.types.d.ts +141 -0
  350. package/dist/src/tools/tool-context.types.d.ts.map +1 -0
  351. package/dist/src/tools/tool-context.types.js +11 -0
  352. package/dist/src/tools/tool-context.types.js.map +1 -0
  353. package/dist/src/tools/tool-registration.d.ts +25 -0
  354. package/dist/src/tools/tool-registration.d.ts.map +1 -0
  355. package/dist/src/tools/tool-registration.js +180 -0
  356. package/dist/src/tools/tool-registration.js.map +1 -0
  357. package/dist/src/tools/tool-schemas.d.ts +176 -1950
  358. package/dist/src/tools/tool-schemas.d.ts.map +1 -1
  359. package/dist/src/tools/tool-schemas.js +80 -320
  360. package/dist/src/tools/tool-schemas.js.map +1 -1
  361. package/dist/src/tools/viewport-tools.d.ts +37 -0
  362. package/dist/src/tools/viewport-tools.d.ts.map +1 -0
  363. package/dist/src/tools/viewport-tools.js +101 -0
  364. package/dist/src/tools/viewport-tools.js.map +1 -0
  365. package/dist/src/worker/chrome-worker-process.d.ts +4 -0
  366. package/dist/src/worker/chrome-worker-process.d.ts.map +1 -1
  367. package/dist/src/worker/chrome-worker-process.js +1 -1
  368. package/dist/src/worker/chrome-worker-process.js.map +1 -1
  369. package/package.json +7 -3
  370. package/dist/src/factpack/action-selector.d.ts +0 -36
  371. package/dist/src/factpack/action-selector.d.ts.map +0 -1
  372. package/dist/src/factpack/action-selector.js +0 -367
  373. package/dist/src/factpack/action-selector.js.map +0 -1
  374. package/dist/src/factpack/dialog-detector.d.ts +0 -19
  375. package/dist/src/factpack/dialog-detector.d.ts.map +0 -1
  376. package/dist/src/factpack/dialog-detector.js +0 -354
  377. package/dist/src/factpack/dialog-detector.js.map +0 -1
  378. package/dist/src/factpack/form-detector.d.ts +0 -28
  379. package/dist/src/factpack/form-detector.d.ts.map +0 -1
  380. package/dist/src/factpack/form-detector.js +0 -555
  381. package/dist/src/factpack/form-detector.js.map +0 -1
  382. package/dist/src/factpack/index.d.ts +0 -32
  383. package/dist/src/factpack/index.d.ts.map +0 -1
  384. package/dist/src/factpack/index.js +0 -73
  385. package/dist/src/factpack/index.js.map +0 -1
  386. package/dist/src/factpack/page-classifier.d.ts +0 -22
  387. package/dist/src/factpack/page-classifier.d.ts.map +0 -1
  388. package/dist/src/factpack/page-classifier.js +0 -526
  389. package/dist/src/factpack/page-classifier.js.map +0 -1
  390. package/dist/src/factpack/types.d.ts +0 -307
  391. package/dist/src/factpack/types.d.ts.map +0 -1
  392. package/dist/src/factpack/types.js +0 -12
  393. package/dist/src/factpack/types.js.map +0 -1
  394. package/dist/src/lib/constants.d.ts +0 -27
  395. package/dist/src/lib/constants.d.ts.map +0 -1
  396. package/dist/src/lib/constants.js +0 -63
  397. package/dist/src/lib/constants.js.map +0 -1
  398. package/dist/src/lib/index.d.ts +0 -12
  399. package/dist/src/lib/index.d.ts.map +0 -1
  400. package/dist/src/lib/index.js +0 -17
  401. package/dist/src/lib/index.js.map +0 -1
  402. package/dist/src/lib/regions.d.ts +0 -29
  403. package/dist/src/lib/regions.d.ts.map +0 -1
  404. package/dist/src/lib/regions.js +0 -93
  405. package/dist/src/lib/regions.js.map +0 -1
  406. package/dist/src/lib/scoring.d.ts +0 -47
  407. package/dist/src/lib/scoring.d.ts.map +0 -1
  408. package/dist/src/lib/scoring.js +0 -79
  409. package/dist/src/lib/scoring.js.map +0 -1
  410. package/dist/src/lib/selectors.d.ts +0 -42
  411. package/dist/src/lib/selectors.d.ts.map +0 -1
  412. package/dist/src/lib/selectors.js +0 -138
  413. package/dist/src/lib/selectors.js.map +0 -1
  414. package/dist/src/renderer/budget-manager.d.ts +0 -46
  415. package/dist/src/renderer/budget-manager.d.ts.map +0 -1
  416. package/dist/src/renderer/budget-manager.js +0 -133
  417. package/dist/src/renderer/budget-manager.js.map +0 -1
  418. package/dist/src/renderer/constants.d.ts +0 -38
  419. package/dist/src/renderer/constants.d.ts.map +0 -1
  420. package/dist/src/renderer/constants.js +0 -29
  421. package/dist/src/renderer/constants.js.map +0 -1
  422. package/dist/src/renderer/index.d.ts +0 -12
  423. package/dist/src/renderer/index.d.ts.map +0 -1
  424. package/dist/src/renderer/index.js +0 -16
  425. package/dist/src/renderer/index.js.map +0 -1
  426. package/dist/src/renderer/section-renderers.d.ts +0 -42
  427. package/dist/src/renderer/section-renderers.d.ts.map +0 -1
  428. package/dist/src/renderer/section-renderers.js +0 -252
  429. package/dist/src/renderer/section-renderers.js.map +0 -1
  430. package/dist/src/renderer/token-counter.d.ts +0 -45
  431. package/dist/src/renderer/token-counter.d.ts.map +0 -1
  432. package/dist/src/renderer/token-counter.js +0 -65
  433. package/dist/src/renderer/token-counter.js.map +0 -1
  434. package/dist/src/renderer/types.d.ts +0 -71
  435. package/dist/src/renderer/types.d.ts.map +0 -1
  436. package/dist/src/renderer/types.js +0 -7
  437. package/dist/src/renderer/types.js.map +0 -1
  438. package/dist/src/renderer/xml-renderer.d.ts +0 -42
  439. package/dist/src/renderer/xml-renderer.d.ts.map +0 -1
  440. package/dist/src/renderer/xml-renderer.js +0 -103
  441. package/dist/src/renderer/xml-renderer.js.map +0 -1
  442. package/dist/src/server/session-store.d.ts +0 -163
  443. package/dist/src/server/session-store.d.ts.map +0 -1
  444. package/dist/src/server/session-store.js +0 -248
  445. package/dist/src/server/session-store.js.map +0 -1
  446. package/dist/src/session/session-worker-binding.d.ts +0 -57
  447. package/dist/src/session/session-worker-binding.d.ts.map +0 -1
  448. package/dist/src/session/session-worker-binding.js +0 -109
  449. package/dist/src/session/session-worker-binding.js.map +0 -1
  450. package/dist/src/shared/services/dom-transformer.service.d.ts +0 -71
  451. package/dist/src/shared/services/dom-transformer.service.d.ts.map +0 -1
  452. package/dist/src/shared/services/dom-transformer.service.js +0 -190
  453. package/dist/src/shared/services/dom-transformer.service.js.map +0 -1
  454. package/dist/src/shared/services/selector-builder.service.d.ts +0 -53
  455. package/dist/src/shared/services/selector-builder.service.d.ts.map +0 -1
  456. package/dist/src/shared/services/selector-builder.service.js +0 -240
  457. package/dist/src/shared/services/selector-builder.service.js.map +0 -1
  458. package/dist/src/state/constants.d.ts +0 -125
  459. package/dist/src/state/constants.d.ts.map +0 -1
  460. package/dist/src/state/constants.js +0 -131
  461. package/dist/src/state/constants.js.map +0 -1
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Tool Context Types
3
+ *
4
+ * Defines the ToolContext interface that all tool handlers receive as a parameter.
5
+ * This decouples tool handlers from global singletons, enabling multi-tenancy
6
+ * where each session has its own isolated context.
7
+ *
8
+ * @module tools/tool-context.types
9
+ */
10
+ import type { SessionManager } from '../browser/session-manager.js';
11
+ import type { PageHandle } from '../browser/page-registry.js';
12
+ import type { BaseSnapshot, ReadableNode } from '../snapshot/snapshot.types.js';
13
+ import type { SnapshotStore } from '../snapshot/snapshot-store.js';
14
+ import type { StateManager } from '../state/state-manager.js';
15
+ import type { DependencyTracker } from '../form/dependency-tracker.js';
16
+ import type { ObservationAccumulator } from '../observation/observation-accumulator.js';
17
+ import type { RuntimeHealth } from '../state/health.types.js';
18
+ import type { BrowserSessionConfig } from '../browser/browser-session-config.js';
19
+ /**
20
+ * Result of ensuring a CDP session is healthy.
21
+ */
22
+ export interface CdpSessionResult {
23
+ handle: PageHandle;
24
+ recovered: boolean;
25
+ runtime_health: RuntimeHealth;
26
+ }
27
+ /**
28
+ * Result of capturing a snapshot with recovery.
29
+ */
30
+ export interface SnapshotCaptureResult {
31
+ snapshot: BaseSnapshot;
32
+ handle: PageHandle;
33
+ runtime_health: RuntimeHealth;
34
+ }
35
+ /**
36
+ * Context interface for tool handler execution.
37
+ *
38
+ * Provides all per-session state that tool handlers need.
39
+ * Replaces module-level singletons with an injectable context object.
40
+ *
41
+ * In single-tenant (stdio) mode, a DefaultToolContext wraps the existing singletons.
42
+ * In multi-tenant (HTTP) mode, a SessionController implements this interface directly.
43
+ */
44
+ export interface ToolContext {
45
+ /** Unique session identifier */
46
+ readonly sessionId: string;
47
+ /**
48
+ * Ensure the session's browser is ready.
49
+ * Lazily launches/connects based on the session's BrowserSessionConfig.
50
+ * Idempotent — returns immediately if already running.
51
+ */
52
+ ensureBrowser(): Promise<void>;
53
+ /**
54
+ * Set the browser configuration for this session.
55
+ * Must be called before the browser is launched/connected.
56
+ * @throws Error if browser is already running
57
+ */
58
+ setBrowserConfig(config: BrowserSessionConfig): void;
59
+ /**
60
+ * Check if browser configuration can be changed.
61
+ * Returns true if no browser is running (allows config before launch or after crash).
62
+ */
63
+ canReconfigure(): boolean;
64
+ /**
65
+ * Shut down the current browser and clear session state so the browser
66
+ * can be reconfigured (e.g., switch from a launched browser to auto_connect).
67
+ * After this call, canReconfigure() returns true.
68
+ */
69
+ resetBrowser(): Promise<void>;
70
+ /**
71
+ * Resolve page_id to a PageHandle, returning undefined if not found.
72
+ */
73
+ resolvePage(pageId?: string): PageHandle | undefined;
74
+ /**
75
+ * Resolve page_id to a PageHandle, creating a new page if needed.
76
+ */
77
+ resolvePageOrCreate(pageId?: string): Promise<PageHandle>;
78
+ /**
79
+ * Resolve page_id to a PageHandle, throwing if not found.
80
+ * Also touches the page to mark it as MRU.
81
+ */
82
+ resolveExistingPage(pageId?: string): PageHandle;
83
+ /**
84
+ * Touch a page to mark it as most recently used.
85
+ */
86
+ touchPage(pageId: string): void;
87
+ /**
88
+ * Close a page and clean up its resources.
89
+ */
90
+ closePage(pageId: string): Promise<boolean>;
91
+ /**
92
+ * Sync with browser context to pick up unregistered pages.
93
+ * Returns all registered pages after sync.
94
+ */
95
+ syncPages(): Promise<PageHandle[]>;
96
+ /**
97
+ * Navigate a page to a URL.
98
+ */
99
+ navigateTo(pageId: string, url: string): Promise<void>;
100
+ /** Get the session manager for browser lifecycle operations. */
101
+ getSessionManager(): SessionManager;
102
+ /** Get the snapshot store for this session. */
103
+ getSnapshotStore(): SnapshotStore;
104
+ /** Get or create a state manager for a specific page. */
105
+ getStateManager(pageId: string): StateManager;
106
+ /** Remove the state manager for a page (on page close). */
107
+ removeStateManager(pageId: string): void;
108
+ /** Clear all state managers (on session close). */
109
+ clearAllStateManagers(): void;
110
+ /** Get the dependency tracker for this session. */
111
+ getDependencyTracker(): DependencyTracker;
112
+ /** Get the observation accumulator for this session. */
113
+ getObservationAccumulator(): ObservationAccumulator;
114
+ /**
115
+ * Ensure CDP session is healthy, attempting repair if needed.
116
+ * Call this before any CDP operation to auto-repair dead sessions.
117
+ */
118
+ ensureCdpSession(handle: PageHandle): Promise<CdpSessionResult>;
119
+ /**
120
+ * Capture a snapshot with stabilization and CDP recovery when empty.
121
+ */
122
+ captureSnapshotWithRecovery(handle: PageHandle, pageId: string): Promise<SnapshotCaptureResult>;
123
+ /**
124
+ * Require a snapshot for a page, throwing if none exists.
125
+ */
126
+ requireSnapshot(pageId: string): BaseSnapshot;
127
+ /**
128
+ * Resolve an element by eid from the snapshot.
129
+ * Includes proactive staleness detection.
130
+ *
131
+ * @throws {ElementNotFoundError} If eid not found in registry
132
+ * @throws {StaleElementError} If eid reference is stale
133
+ */
134
+ resolveElementByEid(pageId: string, eid: string, snapshot: BaseSnapshot): ReadableNode;
135
+ /**
136
+ * Close the session and clean up all resources (browser, snapshots, state, etc.).
137
+ * Implementations should be idempotent — repeated calls are safe no-ops.
138
+ */
139
+ close(): Promise<void>;
140
+ }
141
+ //# sourceMappingURL=tool-context.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-context.types.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-context.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tool Context Types
3
+ *
4
+ * Defines the ToolContext interface that all tool handlers receive as a parameter.
5
+ * This decouples tool handlers from global singletons, enabling multi-tenancy
6
+ * where each session has its own isolated context.
7
+ *
8
+ * @module tools/tool-context.types
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=tool-context.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-context.types.js","sourceRoot":"","sources":["../../../src/tools/tool-context.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Tool Registration
3
+ *
4
+ * Extracts all 23 MCP tool registrations into a reusable function.
5
+ * Used by both stdio (index.ts) and HTTP (http-gateway.ts) entry points.
6
+ */
7
+ import type { ToolContext } from './tool-context.types.js';
8
+ import type { ToolRegistrar } from '../server/tool-registrar.types.js';
9
+ export type { ToolRegistrar } from '../server/tool-registrar.types.js';
10
+ /**
11
+ * Context resolver function type.
12
+ * Returns a ToolContext for the current request.
13
+ */
14
+ export type ContextResolver = () => ToolContext | Promise<ToolContext>;
15
+ /**
16
+ * Register all browser automation tools on an MCP server.
17
+ *
18
+ * Browser initialization is session-scoped: each ToolContext owns its own
19
+ * SessionManager and lazily launches/connects via ctx.ensureBrowser().
20
+ *
21
+ * @param server - The MCP server instance
22
+ * @param resolveCtx - Function that returns the ToolContext for the current request
23
+ */
24
+ export declare function registerAllTools(server: ToolRegistrar, resolveCtx: ContextResolver): void;
25
+ //# sourceMappingURL=tool-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registration.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-registration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AA4CvE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAKvE;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CA0RzF"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Tool Registration
3
+ *
4
+ * Extracts all 23 MCP tool registrations into a reusable function.
5
+ * Used by both stdio (index.ts) and HTTP (http-gateway.ts) entry points.
6
+ */
7
+ // Import all tool handlers
8
+ import { listPages, closePage } from './navigation-tools.js';
9
+ import { navigate, goBack, goForward, reload } from './navigation-tools.js';
10
+ import { captureSnapshot, findElements, getNodeDetails, scrollElementIntoView, scrollPage, } from './observation-tools.js';
11
+ import { click, type, press, select, hover } from './interaction-tools.js';
12
+ import { drag, wheel, takeScreenshot } from './viewport-tools.js';
13
+ import { inspectCanvas } from './canvas-tools.js';
14
+ import { getFormUnderstanding, getFieldContext } from './form-tools.js';
15
+ import { readPage } from './readability-tools.js';
16
+ // Import all input schemas
17
+ import { ListPagesInputSchema, ClosePageInputSchema, NavigateInputSchema, GoBackInputSchema, GoForwardInputSchema, ReloadInputSchema, CaptureSnapshotInputSchema, FindElementsInputSchema, GetNodeDetailsInputSchema, ScrollElementIntoViewInputSchemaBase, ScrollPageInputSchema, ClickInputSchemaBase, TypeInputSchemaBase, PressInputSchema, SelectInputSchemaBase, HoverInputSchemaBase, DragInputSchemaBase, WheelInputSchemaBase, TakeScreenshotInputSchemaBase, InspectCanvasInputSchemaBase, ReadPageInputSchema, } from './tool-schemas.js';
18
+ import { GetFormUnderstandingInputSchema, GetFieldContextInputSchema } from './form-tools.js';
19
+ /** Tools that should not trigger lazy browser initialization */
20
+ const SKIP_BROWSER_INIT = new Set(['close_page', 'list_pages', 'navigate']);
21
+ /**
22
+ * Register all browser automation tools on an MCP server.
23
+ *
24
+ * Browser initialization is session-scoped: each ToolContext owns its own
25
+ * SessionManager and lazily launches/connects via ctx.ensureBrowser().
26
+ *
27
+ * @param server - The MCP server instance
28
+ * @param resolveCtx - Function that returns the ToolContext for the current request
29
+ */
30
+ export function registerAllTools(server, resolveCtx) {
31
+ // Helper: resolve context first, then ensure browser, then run handler.
32
+ // Context resolution is cheap (returns existing SessionController),
33
+ // so it's safe to resolve before the browser is running.
34
+ function wrap(handler, toolName) {
35
+ return async (input) => {
36
+ const ctx = await resolveCtx();
37
+ if (!SKIP_BROWSER_INIT.has(toolName ?? '')) {
38
+ await ctx.ensureBrowser();
39
+ }
40
+ return handler(input, ctx);
41
+ };
42
+ }
43
+ // ============================================================================
44
+ // SESSION TOOLS
45
+ // ============================================================================
46
+ server.registerTool('list_pages', {
47
+ title: 'List Pages',
48
+ description: 'List all open browser pages with their page_id, URL, and title.',
49
+ inputSchema: ListPagesInputSchema.shape,
50
+ }, wrap(listPages, 'list_pages'));
51
+ server.registerTool('close_page', {
52
+ title: 'Close Page',
53
+ description: 'Close a browser tab. Use list_pages first to get the page_id.',
54
+ inputSchema: ClosePageInputSchema.shape,
55
+ }, wrap(closePage, 'close_page'));
56
+ // ============================================================================
57
+ // NAVIGATION TOOLS
58
+ // ============================================================================
59
+ server.registerTool('navigate', {
60
+ title: 'Navigate',
61
+ description: 'Go to a URL. Returns page snapshot with interactive elements.',
62
+ inputSchema: NavigateInputSchema.shape,
63
+ }, wrap(navigate));
64
+ server.registerTool('go_back', {
65
+ title: 'Go Back',
66
+ description: 'Go back one page in browser history.',
67
+ inputSchema: GoBackInputSchema.shape,
68
+ }, wrap(goBack));
69
+ server.registerTool('go_forward', {
70
+ title: 'Go Forward',
71
+ description: 'Go forward one page in browser history.',
72
+ inputSchema: GoForwardInputSchema.shape,
73
+ }, wrap(goForward));
74
+ server.registerTool('reload', {
75
+ title: 'Reload',
76
+ description: 'Refresh the current page.',
77
+ inputSchema: ReloadInputSchema.shape,
78
+ }, wrap(reload));
79
+ server.registerTool('snapshot', {
80
+ title: 'Snapshot',
81
+ description: 'Re-capture the page state without performing any action. Use when the page may have changed on its own (timers, live updates, animations).',
82
+ inputSchema: CaptureSnapshotInputSchema.shape,
83
+ }, wrap(captureSnapshot));
84
+ // ============================================================================
85
+ // OBSERVATION TOOLS
86
+ // ============================================================================
87
+ server.registerTool('find', {
88
+ title: 'Find',
89
+ description: 'Search for interactive elements OR read page text content. Filter by `kind` (button, link, textbox, canvas), `label` (case-insensitive substring match), or `region` (header, main, footer).',
90
+ inputSchema: FindElementsInputSchema.shape,
91
+ }, wrap(findElements));
92
+ server.registerTool('get_element', {
93
+ title: 'Get Element',
94
+ description: 'Get complete details for one element: exact position, size, state, attributes.',
95
+ inputSchema: GetNodeDetailsInputSchema.shape,
96
+ }, wrap(getNodeDetails));
97
+ server.registerTool('screenshot', {
98
+ title: 'Screenshot',
99
+ description: 'Capture a screenshot of the current page or a specific element.',
100
+ inputSchema: TakeScreenshotInputSchemaBase.shape,
101
+ }, wrap(takeScreenshot));
102
+ // ============================================================================
103
+ // INTERACTION TOOLS
104
+ // ============================================================================
105
+ server.registerTool('scroll_to', {
106
+ title: 'Scroll To',
107
+ description: 'Scroll until a specific element is visible in the viewport.',
108
+ inputSchema: ScrollElementIntoViewInputSchemaBase.shape,
109
+ }, wrap(scrollElementIntoView));
110
+ server.registerTool('scroll', {
111
+ title: 'Scroll',
112
+ description: 'Scroll the viewport up or down by pixels.',
113
+ inputSchema: ScrollPageInputSchema.shape,
114
+ }, wrap(scrollPage));
115
+ server.registerTool('click', {
116
+ title: 'Click Element',
117
+ description: 'Click an element or at viewport coordinates.',
118
+ inputSchema: ClickInputSchemaBase.shape,
119
+ }, wrap(click));
120
+ server.registerTool('type', {
121
+ title: 'Type Text',
122
+ description: 'Type text into an input field or text area.',
123
+ inputSchema: TypeInputSchemaBase.shape,
124
+ }, wrap(type));
125
+ server.registerTool('press', {
126
+ title: 'Press Key',
127
+ description: 'Press a keyboard key with optional modifiers.',
128
+ inputSchema: PressInputSchema.shape,
129
+ }, wrap(press));
130
+ server.registerTool('select', {
131
+ title: 'Select Option',
132
+ description: 'Choose an option from a dropdown menu by value or visible text.',
133
+ inputSchema: SelectInputSchemaBase.shape,
134
+ }, wrap(select));
135
+ server.registerTool('hover', {
136
+ title: 'Hover Element',
137
+ description: 'Move mouse over an element without clicking. Triggers hover menus and tooltips.',
138
+ inputSchema: HoverInputSchemaBase.shape,
139
+ }, wrap(hover));
140
+ server.registerTool('drag', {
141
+ title: 'Drag',
142
+ description: 'Drag from one point to another.',
143
+ inputSchema: DragInputSchemaBase.shape,
144
+ }, wrap(drag));
145
+ server.registerTool('wheel', {
146
+ title: 'Wheel',
147
+ description: 'Dispatch a mouse wheel event at specific coordinates. Use for scroll-to-zoom (with Control modifier) or horizontal scrolling.',
148
+ inputSchema: WheelInputSchemaBase.shape,
149
+ }, wrap(wheel));
150
+ // ============================================================================
151
+ // CANVAS INSPECTION TOOLS
152
+ // ============================================================================
153
+ server.registerTool('inspect_canvas', {
154
+ title: 'Inspect Canvas',
155
+ description: 'Analyze a canvas element: auto-detect the rendering library, query its scene graph, and return an annotated screenshot with coordinate grid overlay.',
156
+ inputSchema: InspectCanvasInputSchemaBase.shape,
157
+ }, wrap(inspectCanvas));
158
+ // ============================================================================
159
+ // FORM UNDERSTANDING TOOLS
160
+ // ============================================================================
161
+ server.registerTool('get_form', {
162
+ title: 'Get Form',
163
+ description: 'Analyze all forms on the page: fields, required inputs, validation rules, and field dependencies.',
164
+ inputSchema: GetFormUnderstandingInputSchema.shape,
165
+ }, wrap(getFormUnderstanding));
166
+ server.registerTool('get_field', {
167
+ title: 'Get Field',
168
+ description: 'Get detailed info about one form field: purpose, valid input formats, dependencies, and suggested values.',
169
+ inputSchema: GetFieldContextInputSchema.shape,
170
+ }, wrap(getFieldContext));
171
+ // ============================================================================
172
+ // READABILITY TOOLS
173
+ // ============================================================================
174
+ server.registerTool('read_page', {
175
+ title: 'Read Page',
176
+ description: 'Extract the main readable content from the page, removing navigation, ads, and clutter. Uses Mozilla Readability (Firefox Reader View engine). Best for articles, blog posts, documentation, and content-heavy pages.',
177
+ inputSchema: ReadPageInputSchema.shape,
178
+ }, wrap(readPage));
179
+ }
180
+ //# sourceMappingURL=tool-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registration.js","sourceRoot":"","sources":["../../../src/tools/tool-registration.ts"],"names":[],"mappings":"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"}