@metamask/client-mcp-core 0.1.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 (486) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +6 -0
  3. package/LICENSE.APACHE2 +201 -0
  4. package/LICENSE.MIT +21 -0
  5. package/README.md +1459 -0
  6. package/dist/capabilities/context.cjs +34 -0
  7. package/dist/capabilities/context.cjs.map +1 -0
  8. package/dist/capabilities/context.d.cts +101 -0
  9. package/dist/capabilities/context.d.cts.map +1 -0
  10. package/dist/capabilities/context.d.mts +101 -0
  11. package/dist/capabilities/context.d.mts.map +1 -0
  12. package/dist/capabilities/context.mjs +29 -0
  13. package/dist/capabilities/context.mjs.map +1 -0
  14. package/dist/capabilities/index.cjs +18 -0
  15. package/dist/capabilities/index.cjs.map +1 -0
  16. package/dist/capabilities/index.d.cts +3 -0
  17. package/dist/capabilities/index.d.cts.map +1 -0
  18. package/dist/capabilities/index.d.mts +3 -0
  19. package/dist/capabilities/index.d.mts.map +1 -0
  20. package/dist/capabilities/index.mjs +2 -0
  21. package/dist/capabilities/index.mjs.map +1 -0
  22. package/dist/capabilities/types.cjs +3 -0
  23. package/dist/capabilities/types.cjs.map +1 -0
  24. package/dist/capabilities/types.d.cts +152 -0
  25. package/dist/capabilities/types.d.cts.map +1 -0
  26. package/dist/capabilities/types.d.mts +152 -0
  27. package/dist/capabilities/types.d.mts.map +1 -0
  28. package/dist/capabilities/types.mjs +2 -0
  29. package/dist/capabilities/types.mjs.map +1 -0
  30. package/dist/index.cjs +59 -0
  31. package/dist/index.cjs.map +1 -0
  32. package/dist/index.d.cts +33 -0
  33. package/dist/index.d.cts.map +1 -0
  34. package/dist/index.d.mts +33 -0
  35. package/dist/index.d.mts.map +1 -0
  36. package/dist/index.mjs +43 -0
  37. package/dist/index.mjs.map +1 -0
  38. package/dist/launcher/console-error-buffer.cjs +72 -0
  39. package/dist/launcher/console-error-buffer.cjs.map +1 -0
  40. package/dist/launcher/console-error-buffer.d.cts +43 -0
  41. package/dist/launcher/console-error-buffer.d.cts.map +1 -0
  42. package/dist/launcher/console-error-buffer.d.mts +43 -0
  43. package/dist/launcher/console-error-buffer.d.mts.map +1 -0
  44. package/dist/launcher/console-error-buffer.mjs +68 -0
  45. package/dist/launcher/console-error-buffer.mjs.map +1 -0
  46. package/dist/launcher/extension-id-resolver.cjs +177 -0
  47. package/dist/launcher/extension-id-resolver.cjs.map +1 -0
  48. package/dist/launcher/extension-id-resolver.d.cts +32 -0
  49. package/dist/launcher/extension-id-resolver.d.cts.map +1 -0
  50. package/dist/launcher/extension-id-resolver.d.mts +32 -0
  51. package/dist/launcher/extension-id-resolver.d.mts.map +1 -0
  52. package/dist/launcher/extension-id-resolver.mjs +173 -0
  53. package/dist/launcher/extension-id-resolver.mjs.map +1 -0
  54. package/dist/launcher/extension-readiness.cjs +50 -0
  55. package/dist/launcher/extension-readiness.cjs.map +1 -0
  56. package/dist/launcher/extension-readiness.d.cts +37 -0
  57. package/dist/launcher/extension-readiness.d.cts.map +1 -0
  58. package/dist/launcher/extension-readiness.d.mts +37 -0
  59. package/dist/launcher/extension-readiness.d.mts.map +1 -0
  60. package/dist/launcher/extension-readiness.mjs +43 -0
  61. package/dist/launcher/extension-readiness.mjs.map +1 -0
  62. package/dist/launcher/index.cjs +21 -0
  63. package/dist/launcher/index.cjs.map +1 -0
  64. package/dist/launcher/index.d.cts +5 -0
  65. package/dist/launcher/index.d.cts.map +1 -0
  66. package/dist/launcher/index.d.mts +5 -0
  67. package/dist/launcher/index.d.mts.map +1 -0
  68. package/dist/launcher/index.mjs +5 -0
  69. package/dist/launcher/index.mjs.map +1 -0
  70. package/dist/launcher/retry.cjs +35 -0
  71. package/dist/launcher/retry.cjs.map +1 -0
  72. package/dist/launcher/retry.d.cts +20 -0
  73. package/dist/launcher/retry.d.cts.map +1 -0
  74. package/dist/launcher/retry.d.mts +20 -0
  75. package/dist/launcher/retry.d.mts.map +1 -0
  76. package/dist/launcher/retry.mjs +31 -0
  77. package/dist/launcher/retry.mjs.map +1 -0
  78. package/dist/mcp-server/constants.cjs +22 -0
  79. package/dist/mcp-server/constants.cjs.map +1 -0
  80. package/dist/mcp-server/constants.d.cts +13 -0
  81. package/dist/mcp-server/constants.d.cts.map +1 -0
  82. package/dist/mcp-server/constants.d.mts +13 -0
  83. package/dist/mcp-server/constants.d.mts.map +1 -0
  84. package/dist/mcp-server/constants.mjs +19 -0
  85. package/dist/mcp-server/constants.mjs.map +1 -0
  86. package/dist/mcp-server/discovery.cjs +299 -0
  87. package/dist/mcp-server/discovery.cjs.map +1 -0
  88. package/dist/mcp-server/discovery.d.cts +56 -0
  89. package/dist/mcp-server/discovery.d.cts.map +1 -0
  90. package/dist/mcp-server/discovery.d.mts +56 -0
  91. package/dist/mcp-server/discovery.d.mts.map +1 -0
  92. package/dist/mcp-server/discovery.mjs +292 -0
  93. package/dist/mcp-server/discovery.mjs.map +1 -0
  94. package/dist/mcp-server/knowledge-store.cjs +1196 -0
  95. package/dist/mcp-server/knowledge-store.cjs.map +1 -0
  96. package/dist/mcp-server/knowledge-store.d.cts +249 -0
  97. package/dist/mcp-server/knowledge-store.d.cts.map +1 -0
  98. package/dist/mcp-server/knowledge-store.d.mts +249 -0
  99. package/dist/mcp-server/knowledge-store.d.mts.map +1 -0
  100. package/dist/mcp-server/knowledge-store.mjs +1154 -0
  101. package/dist/mcp-server/knowledge-store.mjs.map +1 -0
  102. package/dist/mcp-server/schemas.cjs +433 -0
  103. package/dist/mcp-server/schemas.cjs.map +1 -0
  104. package/dist/mcp-server/schemas.d.cts +557 -0
  105. package/dist/mcp-server/schemas.d.cts.map +1 -0
  106. package/dist/mcp-server/schemas.d.mts +557 -0
  107. package/dist/mcp-server/schemas.d.mts.map +1 -0
  108. package/dist/mcp-server/schemas.mjs +430 -0
  109. package/dist/mcp-server/schemas.mjs.map +1 -0
  110. package/dist/mcp-server/server.cjs +161 -0
  111. package/dist/mcp-server/server.cjs.map +1 -0
  112. package/dist/mcp-server/server.d.cts +24 -0
  113. package/dist/mcp-server/server.d.cts.map +1 -0
  114. package/dist/mcp-server/server.d.mts +24 -0
  115. package/dist/mcp-server/server.d.mts.map +1 -0
  116. package/dist/mcp-server/server.mjs +158 -0
  117. package/dist/mcp-server/server.mjs.map +1 -0
  118. package/dist/mcp-server/session-manager.cjs +53 -0
  119. package/dist/mcp-server/session-manager.cjs.map +1 -0
  120. package/dist/mcp-server/session-manager.d.cts +240 -0
  121. package/dist/mcp-server/session-manager.d.cts.map +1 -0
  122. package/dist/mcp-server/session-manager.d.mts +240 -0
  123. package/dist/mcp-server/session-manager.d.mts.map +1 -0
  124. package/dist/mcp-server/session-manager.mjs +48 -0
  125. package/dist/mcp-server/session-manager.mjs.map +1 -0
  126. package/dist/mcp-server/test-utils/flush-promises.cjs +10 -0
  127. package/dist/mcp-server/test-utils/flush-promises.cjs.map +1 -0
  128. package/dist/mcp-server/test-utils/flush-promises.d.cts +2 -0
  129. package/dist/mcp-server/test-utils/flush-promises.d.cts.map +1 -0
  130. package/dist/mcp-server/test-utils/flush-promises.d.mts +2 -0
  131. package/dist/mcp-server/test-utils/flush-promises.d.mts.map +1 -0
  132. package/dist/mcp-server/test-utils/flush-promises.mjs +7 -0
  133. package/dist/mcp-server/test-utils/flush-promises.mjs.map +1 -0
  134. package/dist/mcp-server/test-utils/index.cjs +13 -0
  135. package/dist/mcp-server/test-utils/index.cjs.map +1 -0
  136. package/dist/mcp-server/test-utils/index.d.cts +4 -0
  137. package/dist/mcp-server/test-utils/index.d.cts.map +1 -0
  138. package/dist/mcp-server/test-utils/index.d.mts +4 -0
  139. package/dist/mcp-server/test-utils/index.d.mts.map +1 -0
  140. package/dist/mcp-server/test-utils/index.mjs +4 -0
  141. package/dist/mcp-server/test-utils/index.mjs.map +1 -0
  142. package/dist/mcp-server/test-utils/mock-factories.cjs +129 -0
  143. package/dist/mcp-server/test-utils/mock-factories.cjs.map +1 -0
  144. package/dist/mcp-server/test-utils/mock-factories.d.cts +89 -0
  145. package/dist/mcp-server/test-utils/mock-factories.d.cts.map +1 -0
  146. package/dist/mcp-server/test-utils/mock-factories.d.mts +89 -0
  147. package/dist/mcp-server/test-utils/mock-factories.d.mts.map +1 -0
  148. package/dist/mcp-server/test-utils/mock-factories.mjs +125 -0
  149. package/dist/mcp-server/test-utils/mock-factories.mjs.map +1 -0
  150. package/dist/mcp-server/test-utils/mock-playwright.cjs +205 -0
  151. package/dist/mcp-server/test-utils/mock-playwright.cjs.map +1 -0
  152. package/dist/mcp-server/test-utils/mock-playwright.d.cts +69 -0
  153. package/dist/mcp-server/test-utils/mock-playwright.d.cts.map +1 -0
  154. package/dist/mcp-server/test-utils/mock-playwright.d.mts +69 -0
  155. package/dist/mcp-server/test-utils/mock-playwright.d.mts.map +1 -0
  156. package/dist/mcp-server/test-utils/mock-playwright.mjs +200 -0
  157. package/dist/mcp-server/test-utils/mock-playwright.mjs.map +1 -0
  158. package/dist/mcp-server/tokenization.cjs +117 -0
  159. package/dist/mcp-server/tokenization.cjs.map +1 -0
  160. package/dist/mcp-server/tokenization.d.cts +22 -0
  161. package/dist/mcp-server/tokenization.d.cts.map +1 -0
  162. package/dist/mcp-server/tokenization.d.mts +22 -0
  163. package/dist/mcp-server/tokenization.d.mts.map +1 -0
  164. package/dist/mcp-server/tokenization.mjs +112 -0
  165. package/dist/mcp-server/tokenization.mjs.map +1 -0
  166. package/dist/mcp-server/tools/batch.cjs +199 -0
  167. package/dist/mcp-server/tools/batch.cjs.map +1 -0
  168. package/dist/mcp-server/tools/batch.d.cts +81 -0
  169. package/dist/mcp-server/tools/batch.d.cts.map +1 -0
  170. package/dist/mcp-server/tools/batch.d.mts +81 -0
  171. package/dist/mcp-server/tools/batch.d.mts.map +1 -0
  172. package/dist/mcp-server/tools/batch.mjs +191 -0
  173. package/dist/mcp-server/tools/batch.mjs.map +1 -0
  174. package/dist/mcp-server/tools/build.cjs +47 -0
  175. package/dist/mcp-server/tools/build.cjs.map +1 -0
  176. package/dist/mcp-server/tools/build.d.cts +22 -0
  177. package/dist/mcp-server/tools/build.d.cts.map +1 -0
  178. package/dist/mcp-server/tools/build.d.mts +22 -0
  179. package/dist/mcp-server/tools/build.d.mts.map +1 -0
  180. package/dist/mcp-server/tools/build.mjs +44 -0
  181. package/dist/mcp-server/tools/build.mjs.map +1 -0
  182. package/dist/mcp-server/tools/cleanup.cjs +20 -0
  183. package/dist/mcp-server/tools/cleanup.cjs.map +1 -0
  184. package/dist/mcp-server/tools/cleanup.d.cts +10 -0
  185. package/dist/mcp-server/tools/cleanup.d.cts.map +1 -0
  186. package/dist/mcp-server/tools/cleanup.d.mts +10 -0
  187. package/dist/mcp-server/tools/cleanup.d.mts.map +1 -0
  188. package/dist/mcp-server/tools/cleanup.mjs +17 -0
  189. package/dist/mcp-server/tools/cleanup.mjs.map +1 -0
  190. package/dist/mcp-server/tools/clipboard.cjs +100 -0
  191. package/dist/mcp-server/tools/clipboard.cjs.map +1 -0
  192. package/dist/mcp-server/tools/clipboard.d.cts +16 -0
  193. package/dist/mcp-server/tools/clipboard.d.cts.map +1 -0
  194. package/dist/mcp-server/tools/clipboard.d.mts +16 -0
  195. package/dist/mcp-server/tools/clipboard.d.mts.map +1 -0
  196. package/dist/mcp-server/tools/clipboard.mjs +97 -0
  197. package/dist/mcp-server/tools/clipboard.mjs.map +1 -0
  198. package/dist/mcp-server/tools/context.cjs +66 -0
  199. package/dist/mcp-server/tools/context.cjs.map +1 -0
  200. package/dist/mcp-server/tools/context.d.cts +35 -0
  201. package/dist/mcp-server/tools/context.d.cts.map +1 -0
  202. package/dist/mcp-server/tools/context.d.mts +35 -0
  203. package/dist/mcp-server/tools/context.d.mts.map +1 -0
  204. package/dist/mcp-server/tools/context.mjs +62 -0
  205. package/dist/mcp-server/tools/context.mjs.map +1 -0
  206. package/dist/mcp-server/tools/definitions.cjs +463 -0
  207. package/dist/mcp-server/tools/definitions.cjs.map +1 -0
  208. package/dist/mcp-server/tools/definitions.d.cts +97 -0
  209. package/dist/mcp-server/tools/definitions.d.cts.map +1 -0
  210. package/dist/mcp-server/tools/definitions.d.mts +97 -0
  211. package/dist/mcp-server/tools/definitions.d.mts.map +1 -0
  212. package/dist/mcp-server/tools/definitions.mjs +451 -0
  213. package/dist/mcp-server/tools/definitions.mjs.map +1 -0
  214. package/dist/mcp-server/tools/discovery-tools.cjs +162 -0
  215. package/dist/mcp-server/tools/discovery-tools.cjs.map +1 -0
  216. package/dist/mcp-server/tools/discovery-tools.d.cts +26 -0
  217. package/dist/mcp-server/tools/discovery-tools.d.cts.map +1 -0
  218. package/dist/mcp-server/tools/discovery-tools.d.mts +26 -0
  219. package/dist/mcp-server/tools/discovery-tools.d.mts.map +1 -0
  220. package/dist/mcp-server/tools/discovery-tools.mjs +157 -0
  221. package/dist/mcp-server/tools/discovery-tools.mjs.map +1 -0
  222. package/dist/mcp-server/tools/error-classification.cjs +296 -0
  223. package/dist/mcp-server/tools/error-classification.cjs.map +1 -0
  224. package/dist/mcp-server/tools/error-classification.d.cts +135 -0
  225. package/dist/mcp-server/tools/error-classification.d.cts.map +1 -0
  226. package/dist/mcp-server/tools/error-classification.d.mts +135 -0
  227. package/dist/mcp-server/tools/error-classification.d.mts.map +1 -0
  228. package/dist/mcp-server/tools/error-classification.mjs +281 -0
  229. package/dist/mcp-server/tools/error-classification.mjs.map +1 -0
  230. package/dist/mcp-server/tools/helpers.cjs +149 -0
  231. package/dist/mcp-server/tools/helpers.cjs.map +1 -0
  232. package/dist/mcp-server/tools/helpers.d.cts +149 -0
  233. package/dist/mcp-server/tools/helpers.d.cts.map +1 -0
  234. package/dist/mcp-server/tools/helpers.d.mts +149 -0
  235. package/dist/mcp-server/tools/helpers.d.mts.map +1 -0
  236. package/dist/mcp-server/tools/helpers.mjs +141 -0
  237. package/dist/mcp-server/tools/helpers.mjs.map +1 -0
  238. package/dist/mcp-server/tools/index.cjs +27 -0
  239. package/dist/mcp-server/tools/index.cjs.map +1 -0
  240. package/dist/mcp-server/tools/index.d.cts +11 -0
  241. package/dist/mcp-server/tools/index.d.cts.map +1 -0
  242. package/dist/mcp-server/tools/index.d.mts +11 -0
  243. package/dist/mcp-server/tools/index.d.mts.map +1 -0
  244. package/dist/mcp-server/tools/index.mjs +11 -0
  245. package/dist/mcp-server/tools/index.mjs.map +1 -0
  246. package/dist/mcp-server/tools/interaction.cjs +190 -0
  247. package/dist/mcp-server/tools/interaction.cjs.map +1 -0
  248. package/dist/mcp-server/tools/interaction.d.cts +26 -0
  249. package/dist/mcp-server/tools/interaction.d.cts.map +1 -0
  250. package/dist/mcp-server/tools/interaction.d.mts +26 -0
  251. package/dist/mcp-server/tools/interaction.d.mts.map +1 -0
  252. package/dist/mcp-server/tools/interaction.mjs +185 -0
  253. package/dist/mcp-server/tools/interaction.mjs.map +1 -0
  254. package/dist/mcp-server/tools/knowledge.cjs +120 -0
  255. package/dist/mcp-server/tools/knowledge.cjs.map +1 -0
  256. package/dist/mcp-server/tools/knowledge.d.cts +34 -0
  257. package/dist/mcp-server/tools/knowledge.d.cts.map +1 -0
  258. package/dist/mcp-server/tools/knowledge.d.mts +34 -0
  259. package/dist/mcp-server/tools/knowledge.d.mts.map +1 -0
  260. package/dist/mcp-server/tools/knowledge.mjs +114 -0
  261. package/dist/mcp-server/tools/knowledge.mjs.map +1 -0
  262. package/dist/mcp-server/tools/launch.cjs +51 -0
  263. package/dist/mcp-server/tools/launch.cjs.map +1 -0
  264. package/dist/mcp-server/tools/launch.d.cts +10 -0
  265. package/dist/mcp-server/tools/launch.d.cts.map +1 -0
  266. package/dist/mcp-server/tools/launch.d.mts +10 -0
  267. package/dist/mcp-server/tools/launch.d.mts.map +1 -0
  268. package/dist/mcp-server/tools/launch.mjs +48 -0
  269. package/dist/mcp-server/tools/launch.mjs.map +1 -0
  270. package/dist/mcp-server/tools/navigation.cjs +242 -0
  271. package/dist/mcp-server/tools/navigation.cjs.map +1 -0
  272. package/dist/mcp-server/tools/navigation.d.cts +34 -0
  273. package/dist/mcp-server/tools/navigation.d.cts.map +1 -0
  274. package/dist/mcp-server/tools/navigation.d.mts +34 -0
  275. package/dist/mcp-server/tools/navigation.d.mts.map +1 -0
  276. package/dist/mcp-server/tools/navigation.mjs +236 -0
  277. package/dist/mcp-server/tools/navigation.mjs.map +1 -0
  278. package/dist/mcp-server/tools/registry.cjs +10 -0
  279. package/dist/mcp-server/tools/registry.cjs.map +1 -0
  280. package/dist/mcp-server/tools/registry.d.cts +4 -0
  281. package/dist/mcp-server/tools/registry.d.cts.map +1 -0
  282. package/dist/mcp-server/tools/registry.d.mts +4 -0
  283. package/dist/mcp-server/tools/registry.d.mts.map +1 -0
  284. package/dist/mcp-server/tools/registry.mjs +4 -0
  285. package/dist/mcp-server/tools/registry.mjs.map +1 -0
  286. package/dist/mcp-server/tools/run-tool.cjs +140 -0
  287. package/dist/mcp-server/tools/run-tool.cjs.map +1 -0
  288. package/dist/mcp-server/tools/run-tool.d.cts +39 -0
  289. package/dist/mcp-server/tools/run-tool.d.cts.map +1 -0
  290. package/dist/mcp-server/tools/run-tool.d.mts +39 -0
  291. package/dist/mcp-server/tools/run-tool.d.mts.map +1 -0
  292. package/dist/mcp-server/tools/run-tool.mjs +137 -0
  293. package/dist/mcp-server/tools/run-tool.mjs.map +1 -0
  294. package/dist/mcp-server/tools/screenshot.cjs +55 -0
  295. package/dist/mcp-server/tools/screenshot.cjs.map +1 -0
  296. package/dist/mcp-server/tools/screenshot.d.cts +10 -0
  297. package/dist/mcp-server/tools/screenshot.d.cts.map +1 -0
  298. package/dist/mcp-server/tools/screenshot.d.mts +10 -0
  299. package/dist/mcp-server/tools/screenshot.d.mts.map +1 -0
  300. package/dist/mcp-server/tools/screenshot.mjs +52 -0
  301. package/dist/mcp-server/tools/screenshot.mjs.map +1 -0
  302. package/dist/mcp-server/tools/seeding.cjs +214 -0
  303. package/dist/mcp-server/tools/seeding.cjs.map +1 -0
  304. package/dist/mcp-server/tools/seeding.d.cts +38 -0
  305. package/dist/mcp-server/tools/seeding.d.cts.map +1 -0
  306. package/dist/mcp-server/tools/seeding.d.mts +38 -0
  307. package/dist/mcp-server/tools/seeding.d.mts.map +1 -0
  308. package/dist/mcp-server/tools/seeding.mjs +208 -0
  309. package/dist/mcp-server/tools/seeding.mjs.map +1 -0
  310. package/dist/mcp-server/tools/state.cjs +69 -0
  311. package/dist/mcp-server/tools/state.cjs.map +1 -0
  312. package/dist/mcp-server/tools/state.d.cts +19 -0
  313. package/dist/mcp-server/tools/state.d.cts.map +1 -0
  314. package/dist/mcp-server/tools/state.d.mts +19 -0
  315. package/dist/mcp-server/tools/state.d.mts.map +1 -0
  316. package/dist/mcp-server/tools/state.mjs +66 -0
  317. package/dist/mcp-server/tools/state.mjs.map +1 -0
  318. package/dist/mcp-server/types/discovery.cjs +24 -0
  319. package/dist/mcp-server/types/discovery.cjs.map +1 -0
  320. package/dist/mcp-server/types/discovery.d.cts +30 -0
  321. package/dist/mcp-server/types/discovery.d.cts.map +1 -0
  322. package/dist/mcp-server/types/discovery.d.mts +30 -0
  323. package/dist/mcp-server/types/discovery.d.mts.map +1 -0
  324. package/dist/mcp-server/types/discovery.mjs +21 -0
  325. package/dist/mcp-server/types/discovery.mjs.map +1 -0
  326. package/dist/mcp-server/types/errors.cjs +33 -0
  327. package/dist/mcp-server/types/errors.cjs.map +1 -0
  328. package/dist/mcp-server/types/errors.d.cts +31 -0
  329. package/dist/mcp-server/types/errors.d.cts.map +1 -0
  330. package/dist/mcp-server/types/errors.d.mts +31 -0
  331. package/dist/mcp-server/types/errors.d.mts.map +1 -0
  332. package/dist/mcp-server/types/errors.mjs +30 -0
  333. package/dist/mcp-server/types/errors.mjs.map +1 -0
  334. package/dist/mcp-server/types/index.cjs +21 -0
  335. package/dist/mcp-server/types/index.cjs.map +1 -0
  336. package/dist/mcp-server/types/index.d.cts +10 -0
  337. package/dist/mcp-server/types/index.d.cts.map +1 -0
  338. package/dist/mcp-server/types/index.d.mts +10 -0
  339. package/dist/mcp-server/types/index.d.mts.map +1 -0
  340. package/dist/mcp-server/types/index.mjs +5 -0
  341. package/dist/mcp-server/types/index.mjs.map +1 -0
  342. package/dist/mcp-server/types/knowledge.cjs +3 -0
  343. package/dist/mcp-server/types/knowledge.cjs.map +1 -0
  344. package/dist/mcp-server/types/knowledge.d.cts +116 -0
  345. package/dist/mcp-server/types/knowledge.d.cts.map +1 -0
  346. package/dist/mcp-server/types/knowledge.d.mts +116 -0
  347. package/dist/mcp-server/types/knowledge.d.mts.map +1 -0
  348. package/dist/mcp-server/types/knowledge.mjs +2 -0
  349. package/dist/mcp-server/types/knowledge.mjs.map +1 -0
  350. package/dist/mcp-server/types/responses.cjs +3 -0
  351. package/dist/mcp-server/types/responses.cjs.map +1 -0
  352. package/dist/mcp-server/types/responses.d.cts +22 -0
  353. package/dist/mcp-server/types/responses.d.cts.map +1 -0
  354. package/dist/mcp-server/types/responses.d.mts +22 -0
  355. package/dist/mcp-server/types/responses.d.mts.map +1 -0
  356. package/dist/mcp-server/types/responses.mjs +2 -0
  357. package/dist/mcp-server/types/responses.mjs.map +1 -0
  358. package/dist/mcp-server/types/seeding.cjs +34 -0
  359. package/dist/mcp-server/types/seeding.cjs.map +1 -0
  360. package/dist/mcp-server/types/seeding.d.cts +40 -0
  361. package/dist/mcp-server/types/seeding.d.cts.map +1 -0
  362. package/dist/mcp-server/types/seeding.d.mts +40 -0
  363. package/dist/mcp-server/types/seeding.d.mts.map +1 -0
  364. package/dist/mcp-server/types/seeding.mjs +31 -0
  365. package/dist/mcp-server/types/seeding.mjs.map +1 -0
  366. package/dist/mcp-server/types/session.cjs +3 -0
  367. package/dist/mcp-server/types/session.cjs.map +1 -0
  368. package/dist/mcp-server/types/session.d.cts +11 -0
  369. package/dist/mcp-server/types/session.d.cts.map +1 -0
  370. package/dist/mcp-server/types/session.d.mts +11 -0
  371. package/dist/mcp-server/types/session.d.mts.map +1 -0
  372. package/dist/mcp-server/types/session.mjs +2 -0
  373. package/dist/mcp-server/types/session.mjs.map +1 -0
  374. package/dist/mcp-server/types/step-record.cjs +20 -0
  375. package/dist/mcp-server/types/step-record.cjs.map +1 -0
  376. package/dist/mcp-server/types/step-record.d.cts +86 -0
  377. package/dist/mcp-server/types/step-record.d.cts.map +1 -0
  378. package/dist/mcp-server/types/step-record.d.mts +86 -0
  379. package/dist/mcp-server/types/step-record.d.mts.map +1 -0
  380. package/dist/mcp-server/types/step-record.mjs +17 -0
  381. package/dist/mcp-server/types/step-record.mjs.map +1 -0
  382. package/dist/mcp-server/types/tool-inputs.cjs +3 -0
  383. package/dist/mcp-server/types/tool-inputs.cjs.map +1 -0
  384. package/dist/mcp-server/types/tool-inputs.d.cts +118 -0
  385. package/dist/mcp-server/types/tool-inputs.d.cts.map +1 -0
  386. package/dist/mcp-server/types/tool-inputs.d.mts +118 -0
  387. package/dist/mcp-server/types/tool-inputs.d.mts.map +1 -0
  388. package/dist/mcp-server/types/tool-inputs.mjs +2 -0
  389. package/dist/mcp-server/types/tool-inputs.mjs.map +1 -0
  390. package/dist/mcp-server/types/tool-outputs.cjs +3 -0
  391. package/dist/mcp-server/types/tool-outputs.cjs.map +1 -0
  392. package/dist/mcp-server/types/tool-outputs.d.cts +121 -0
  393. package/dist/mcp-server/types/tool-outputs.d.cts.map +1 -0
  394. package/dist/mcp-server/types/tool-outputs.d.mts +121 -0
  395. package/dist/mcp-server/types/tool-outputs.d.mts.map +1 -0
  396. package/dist/mcp-server/types/tool-outputs.mjs +2 -0
  397. package/dist/mcp-server/types/tool-outputs.mjs.map +1 -0
  398. package/dist/mcp-server/utils/errors.cjs +14 -0
  399. package/dist/mcp-server/utils/errors.cjs.map +1 -0
  400. package/dist/mcp-server/utils/errors.d.cts +9 -0
  401. package/dist/mcp-server/utils/errors.d.cts.map +1 -0
  402. package/dist/mcp-server/utils/errors.d.mts +9 -0
  403. package/dist/mcp-server/utils/errors.d.mts.map +1 -0
  404. package/dist/mcp-server/utils/errors.mjs +11 -0
  405. package/dist/mcp-server/utils/errors.mjs.map +1 -0
  406. package/dist/mcp-server/utils/index.cjs +22 -0
  407. package/dist/mcp-server/utils/index.cjs.map +1 -0
  408. package/dist/mcp-server/utils/index.d.cts +8 -0
  409. package/dist/mcp-server/utils/index.d.cts.map +1 -0
  410. package/dist/mcp-server/utils/index.d.mts +8 -0
  411. package/dist/mcp-server/utils/index.d.mts.map +1 -0
  412. package/dist/mcp-server/utils/index.mjs +8 -0
  413. package/dist/mcp-server/utils/index.mjs.map +1 -0
  414. package/dist/mcp-server/utils/logger.cjs +25 -0
  415. package/dist/mcp-server/utils/logger.cjs.map +1 -0
  416. package/dist/mcp-server/utils/logger.d.cts +9 -0
  417. package/dist/mcp-server/utils/logger.d.cts.map +1 -0
  418. package/dist/mcp-server/utils/logger.d.mts +9 -0
  419. package/dist/mcp-server/utils/logger.d.mts.map +1 -0
  420. package/dist/mcp-server/utils/logger.mjs +22 -0
  421. package/dist/mcp-server/utils/logger.mjs.map +1 -0
  422. package/dist/mcp-server/utils/redaction.cjs +24 -0
  423. package/dist/mcp-server/utils/redaction.cjs.map +1 -0
  424. package/dist/mcp-server/utils/redaction.d.cts +9 -0
  425. package/dist/mcp-server/utils/redaction.d.cts.map +1 -0
  426. package/dist/mcp-server/utils/redaction.d.mts +9 -0
  427. package/dist/mcp-server/utils/redaction.d.mts.map +1 -0
  428. package/dist/mcp-server/utils/redaction.mjs +20 -0
  429. package/dist/mcp-server/utils/redaction.mjs.map +1 -0
  430. package/dist/mcp-server/utils/response.cjs +49 -0
  431. package/dist/mcp-server/utils/response.cjs.map +1 -0
  432. package/dist/mcp-server/utils/response.d.cts +22 -0
  433. package/dist/mcp-server/utils/response.d.cts.map +1 -0
  434. package/dist/mcp-server/utils/response.d.mts +22 -0
  435. package/dist/mcp-server/utils/response.d.mts.map +1 -0
  436. package/dist/mcp-server/utils/response.mjs +45 -0
  437. package/dist/mcp-server/utils/response.mjs.map +1 -0
  438. package/dist/mcp-server/utils/targets.cjs +32 -0
  439. package/dist/mcp-server/utils/targets.cjs.map +1 -0
  440. package/dist/mcp-server/utils/targets.d.cts +25 -0
  441. package/dist/mcp-server/utils/targets.d.cts.map +1 -0
  442. package/dist/mcp-server/utils/targets.d.mts +25 -0
  443. package/dist/mcp-server/utils/targets.d.mts.map +1 -0
  444. package/dist/mcp-server/utils/targets.mjs +29 -0
  445. package/dist/mcp-server/utils/targets.mjs.map +1 -0
  446. package/dist/mcp-server/utils/time.cjs +39 -0
  447. package/dist/mcp-server/utils/time.cjs.map +1 -0
  448. package/dist/mcp-server/utils/time.d.cts +15 -0
  449. package/dist/mcp-server/utils/time.d.cts.map +1 -0
  450. package/dist/mcp-server/utils/time.d.mts +15 -0
  451. package/dist/mcp-server/utils/time.d.mts.map +1 -0
  452. package/dist/mcp-server/utils/time.mjs +35 -0
  453. package/dist/mcp-server/utils/time.mjs.map +1 -0
  454. package/dist/mcp-server/utils/type-guards.cjs +42 -0
  455. package/dist/mcp-server/utils/type-guards.cjs.map +1 -0
  456. package/dist/mcp-server/utils/type-guards.d.cts +30 -0
  457. package/dist/mcp-server/utils/type-guards.d.cts.map +1 -0
  458. package/dist/mcp-server/utils/type-guards.d.mts +30 -0
  459. package/dist/mcp-server/utils/type-guards.d.mts.map +1 -0
  460. package/dist/mcp-server/utils/type-guards.mjs +38 -0
  461. package/dist/mcp-server/utils/type-guards.mjs.map +1 -0
  462. package/dist/utils/fetch.cjs +36 -0
  463. package/dist/utils/fetch.cjs.map +1 -0
  464. package/dist/utils/fetch.d.cts +20 -0
  465. package/dist/utils/fetch.d.cts.map +1 -0
  466. package/dist/utils/fetch.d.mts +20 -0
  467. package/dist/utils/fetch.d.mts.map +1 -0
  468. package/dist/utils/fetch.mjs +33 -0
  469. package/dist/utils/fetch.mjs.map +1 -0
  470. package/dist/utils/index.cjs +11 -0
  471. package/dist/utils/index.cjs.map +1 -0
  472. package/dist/utils/index.d.cts +6 -0
  473. package/dist/utils/index.d.cts.map +1 -0
  474. package/dist/utils/index.d.mts +6 -0
  475. package/dist/utils/index.d.mts.map +1 -0
  476. package/dist/utils/index.mjs +6 -0
  477. package/dist/utils/index.mjs.map +1 -0
  478. package/dist/utils/service-readiness.cjs +75 -0
  479. package/dist/utils/service-readiness.cjs.map +1 -0
  480. package/dist/utils/service-readiness.d.cts +61 -0
  481. package/dist/utils/service-readiness.d.cts.map +1 -0
  482. package/dist/utils/service-readiness.d.mts +61 -0
  483. package/dist/utils/service-readiness.d.mts.map +1 -0
  484. package/dist/utils/service-readiness.mjs +72 -0
  485. package/dist/utils/service-readiness.mjs.map +1 -0
  486. package/package.json +119 -0
@@ -0,0 +1,97 @@
1
+ import type { ZodType } from "zod";
2
+ import type { ToolHandler } from "./batch.cjs";
3
+ export declare const TOOL_PREFIX = "mm";
4
+ export type ToolDefinition = {
5
+ name: string;
6
+ description: string;
7
+ inputSchema: Record<string, unknown>;
8
+ };
9
+ type ZodSchema = ZodType<unknown> & {
10
+ toJSONSchema(): Record<string, unknown>;
11
+ };
12
+ type ToolEntry = {
13
+ schema: ZodSchema;
14
+ description: string;
15
+ handler: ToolHandler;
16
+ };
17
+ /**
18
+ * Get all tool definitions with their schemas and descriptions.
19
+ *
20
+ * @returns Array of tool definitions for all available MCP tools
21
+ */
22
+ export declare function getToolDefinitions(): ToolDefinition[];
23
+ /**
24
+ * Get the handler function for a specific tool by name.
25
+ *
26
+ * @param name The tool name (with or without mm_ prefix)
27
+ * @returns The tool handler function or undefined if tool not found
28
+ */
29
+ export declare function getToolHandler(name: string): ToolHandler | undefined;
30
+ /**
31
+ * Check if a tool handler exists for the given tool name.
32
+ *
33
+ * @param name The tool name to check
34
+ * @returns True if a handler exists for the tool, false otherwise
35
+ */
36
+ export declare function hasToolHandler(name: string): boolean;
37
+ /**
38
+ * Extract the base name from a tool name by removing the mm_ prefix.
39
+ *
40
+ * @param toolName The tool name (with or without mm_ prefix)
41
+ * @returns The base name without the prefix
42
+ */
43
+ export declare function extractBaseName(toolName: string): string;
44
+ /**
45
+ * Validate tool input against the tool's schema and return parsed data.
46
+ *
47
+ * @param toolName The tool name to validate input for
48
+ * @param input The input data to validate
49
+ * @returns The validated and parsed input data
50
+ */
51
+ export declare function validateToolInput<Type = unknown>(toolName: string, input: unknown): Type;
52
+ /**
53
+ * Safely validate tool input without throwing errors.
54
+ *
55
+ * @param toolName The tool name to validate input for
56
+ * @param input The input data to validate
57
+ * @returns Object with success flag and either parsed data or error message
58
+ */
59
+ export declare function safeValidateToolInput(toolName: string, input: unknown): {
60
+ /**
61
+ * Indicates validation succeeded
62
+ */
63
+ success: true;
64
+ /**
65
+ * The validated and parsed input data
66
+ */
67
+ data: unknown;
68
+ } | {
69
+ /**
70
+ * Indicates validation failed
71
+ */
72
+ success: false;
73
+ /**
74
+ * Error message describing validation failure
75
+ */
76
+ error: string;
77
+ };
78
+ /**
79
+ * Get all available tool base names (without mm_ prefix).
80
+ *
81
+ * @returns Array of tool base names
82
+ */
83
+ export declare function getToolNames(): string[];
84
+ /**
85
+ * Get all available tool names with mm_ prefix.
86
+ *
87
+ * @returns Array of prefixed tool names
88
+ */
89
+ export declare function getPrefixedToolNames(): string[];
90
+ /**
91
+ * Build a record mapping prefixed tool names to their handler functions.
92
+ *
93
+ * @returns Record of tool name to handler function mappings
94
+ */
95
+ export declare function buildToolHandlersRecord(): Record<string, ToolHandler>;
96
+ export type { ToolEntry };
97
+ //# sourceMappingURL=definitions.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.cts","sourceRoot":"","sources":["../../../src/mcp-server/tools/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY;AAiCnC,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAmB;AA0C9C,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEhF,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAwYF;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAC9C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GAEZ;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAiBJ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAMrE;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,97 @@
1
+ import type { ZodType } from "zod";
2
+ import type { ToolHandler } from "./batch.mjs";
3
+ export declare const TOOL_PREFIX = "mm";
4
+ export type ToolDefinition = {
5
+ name: string;
6
+ description: string;
7
+ inputSchema: Record<string, unknown>;
8
+ };
9
+ type ZodSchema = ZodType<unknown> & {
10
+ toJSONSchema(): Record<string, unknown>;
11
+ };
12
+ type ToolEntry = {
13
+ schema: ZodSchema;
14
+ description: string;
15
+ handler: ToolHandler;
16
+ };
17
+ /**
18
+ * Get all tool definitions with their schemas and descriptions.
19
+ *
20
+ * @returns Array of tool definitions for all available MCP tools
21
+ */
22
+ export declare function getToolDefinitions(): ToolDefinition[];
23
+ /**
24
+ * Get the handler function for a specific tool by name.
25
+ *
26
+ * @param name The tool name (with or without mm_ prefix)
27
+ * @returns The tool handler function or undefined if tool not found
28
+ */
29
+ export declare function getToolHandler(name: string): ToolHandler | undefined;
30
+ /**
31
+ * Check if a tool handler exists for the given tool name.
32
+ *
33
+ * @param name The tool name to check
34
+ * @returns True if a handler exists for the tool, false otherwise
35
+ */
36
+ export declare function hasToolHandler(name: string): boolean;
37
+ /**
38
+ * Extract the base name from a tool name by removing the mm_ prefix.
39
+ *
40
+ * @param toolName The tool name (with or without mm_ prefix)
41
+ * @returns The base name without the prefix
42
+ */
43
+ export declare function extractBaseName(toolName: string): string;
44
+ /**
45
+ * Validate tool input against the tool's schema and return parsed data.
46
+ *
47
+ * @param toolName The tool name to validate input for
48
+ * @param input The input data to validate
49
+ * @returns The validated and parsed input data
50
+ */
51
+ export declare function validateToolInput<Type = unknown>(toolName: string, input: unknown): Type;
52
+ /**
53
+ * Safely validate tool input without throwing errors.
54
+ *
55
+ * @param toolName The tool name to validate input for
56
+ * @param input The input data to validate
57
+ * @returns Object with success flag and either parsed data or error message
58
+ */
59
+ export declare function safeValidateToolInput(toolName: string, input: unknown): {
60
+ /**
61
+ * Indicates validation succeeded
62
+ */
63
+ success: true;
64
+ /**
65
+ * The validated and parsed input data
66
+ */
67
+ data: unknown;
68
+ } | {
69
+ /**
70
+ * Indicates validation failed
71
+ */
72
+ success: false;
73
+ /**
74
+ * Error message describing validation failure
75
+ */
76
+ error: string;
77
+ };
78
+ /**
79
+ * Get all available tool base names (without mm_ prefix).
80
+ *
81
+ * @returns Array of tool base names
82
+ */
83
+ export declare function getToolNames(): string[];
84
+ /**
85
+ * Get all available tool names with mm_ prefix.
86
+ *
87
+ * @returns Array of prefixed tool names
88
+ */
89
+ export declare function getPrefixedToolNames(): string[];
90
+ /**
91
+ * Build a record mapping prefixed tool names to their handler functions.
92
+ *
93
+ * @returns Record of tool name to handler function mappings
94
+ */
95
+ export declare function buildToolHandlersRecord(): Record<string, ToolHandler>;
96
+ export type { ToolEntry };
97
+ //# sourceMappingURL=definitions.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.mts","sourceRoot":"","sources":["../../../src/mcp-server/tools/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY;AAiCnC,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAmB;AA0C9C,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEhF,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAwYF;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAUpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAC9C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GAEZ;IACE;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAiBJ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAMrE;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,451 @@
1
+ import { buildInputSchema, launchInputSchema, cleanupInputSchema, getStateInputSchema, navigateInputSchema, waitForNotificationInputSchema, switchToTabInputSchema, closeTabInputSchema, listTestIdsInputSchema, accessibilitySnapshotInputSchema, describeScreenInputSchema, screenshotInputSchema, clickInputSchema, typeInputSchema, waitForInputSchema, knowledgeLastInputSchema, knowledgeSearchInputSchema, knowledgeSummarizeInputSchema, knowledgeSessionsInputSchema, seedContractInputSchema, seedContractsInputSchema, getContractAddressInputSchema, listDeployedContractsInputSchema, runStepsInputSchema, setContextInputSchema, getContextInputSchema, clipboardInputSchema } from "../schemas.mjs";
2
+ import { getSessionManager } from "../session-manager.mjs";
3
+ import { handleRunSteps } from "./batch.mjs";
4
+ import { handleBuild } from "./build.mjs";
5
+ import { handleCleanup } from "./cleanup.mjs";
6
+ import { handleClipboard } from "./clipboard.mjs";
7
+ import { handleSetContext, handleGetContext } from "./context.mjs";
8
+ import { handleListTestIds, handleAccessibilitySnapshot, handleDescribeScreen } from "./discovery-tools.mjs";
9
+ import { handleClick, handleType, handleWaitFor } from "./interaction.mjs";
10
+ import { handleKnowledgeLast, handleKnowledgeSearch, handleKnowledgeSummarize, handleKnowledgeSessions } from "./knowledge.mjs";
11
+ import { handleLaunch } from "./launch.mjs";
12
+ import { handleNavigate, handleWaitForNotification, handleSwitchToTab, handleCloseTab } from "./navigation.mjs";
13
+ import { handleScreenshot } from "./screenshot.mjs";
14
+ import { handleSeedContract, handleSeedContracts, handleGetContractAddress, handleListDeployedContracts } from "./seeding.mjs";
15
+ import { handleGetState } from "./state.mjs";
16
+ export const TOOL_PREFIX = 'mm';
17
+ /**
18
+ * Create a handler for the build tool that injects build capability.
19
+ *
20
+ * @returns A tool handler function for building the extension
21
+ */
22
+ function createBuildHandler() {
23
+ return async (input, options) => {
24
+ const sessionManager = getSessionManager();
25
+ const buildOptions = {
26
+ ...options,
27
+ buildCapability: sessionManager.getBuildCapability?.(),
28
+ };
29
+ return handleBuild(input, buildOptions);
30
+ };
31
+ }
32
+ /**
33
+ * Create a handler for the state tool that injects state snapshot capability.
34
+ *
35
+ * @returns A tool handler function for getting extension state
36
+ */
37
+ function createStateHandler() {
38
+ return async (_, options) => {
39
+ const sessionManager = getSessionManager();
40
+ const stateOptions = {
41
+ ...options,
42
+ stateSnapshotCapability: sessionManager.getStateSnapshotCapability?.(),
43
+ };
44
+ return handleGetState(stateOptions);
45
+ };
46
+ }
47
+ /**
48
+ * Create a handler for the seed contract tool that injects seeding capability.
49
+ *
50
+ * @returns A tool handler function for deploying a single contract
51
+ */
52
+ function createSeedContractHandler() {
53
+ return async (input, options) => {
54
+ const sessionManager = getSessionManager();
55
+ const seedingOptions = {
56
+ ...options,
57
+ seedingCapability: sessionManager.getContractSeedingCapability?.(),
58
+ };
59
+ return handleSeedContract(input, seedingOptions);
60
+ };
61
+ }
62
+ /**
63
+ * Create a handler for the seed contracts tool that injects seeding capability.
64
+ *
65
+ * @returns A tool handler function for deploying multiple contracts
66
+ */
67
+ function createSeedContractsHandler() {
68
+ return async (input, options) => {
69
+ const sessionManager = getSessionManager();
70
+ const seedingOptions = {
71
+ ...options,
72
+ seedingCapability: sessionManager.getContractSeedingCapability?.(),
73
+ };
74
+ return handleSeedContracts(input, seedingOptions);
75
+ };
76
+ }
77
+ /**
78
+ * Create a handler for the get contract address tool that injects seeding capability.
79
+ *
80
+ * @returns A tool handler function for retrieving a deployed contract address
81
+ */
82
+ function createGetContractAddressHandler() {
83
+ return async (input, options) => {
84
+ const sessionManager = getSessionManager();
85
+ const seedingOptions = {
86
+ ...options,
87
+ seedingCapability: sessionManager.getContractSeedingCapability?.(),
88
+ };
89
+ return handleGetContractAddress(input, seedingOptions);
90
+ };
91
+ }
92
+ /**
93
+ * Create a handler for the list contracts tool that injects seeding capability.
94
+ *
95
+ * @returns A tool handler function for listing deployed contracts
96
+ */
97
+ function createListDeployedContractsHandler() {
98
+ return async (input, options) => {
99
+ const sessionManager = getSessionManager();
100
+ const seedingOptions = {
101
+ ...options,
102
+ seedingCapability: sessionManager.getContractSeedingCapability?.(),
103
+ };
104
+ return handleListDeployedContracts(input, seedingOptions);
105
+ };
106
+ }
107
+ const tools = {
108
+ build: {
109
+ schema: buildInputSchema,
110
+ description: `Build the extension using yarn build:test. Call before ${TOOL_PREFIX}_launch if extension is not built.`,
111
+ handler: createBuildHandler(),
112
+ },
113
+ launch: {
114
+ schema: launchInputSchema,
115
+ description: 'Launch extension in a headed Chrome browser with Playwright. Returns session info and initial state.',
116
+ handler: handleLaunch,
117
+ },
118
+ cleanup: {
119
+ schema: cleanupInputSchema,
120
+ description: 'Stop the browser, Anvil, and all services. Always call when done.',
121
+ handler: handleCleanup,
122
+ },
123
+ get_state: {
124
+ schema: getStateInputSchema,
125
+ description: 'Get current extension state including screen, URL, balance, network, and account address.',
126
+ handler: createStateHandler(),
127
+ },
128
+ navigate: {
129
+ schema: navigateInputSchema,
130
+ description: 'Navigate to a specific screen in the extension.',
131
+ handler: handleNavigate,
132
+ },
133
+ wait_for_notification: {
134
+ schema: waitForNotificationInputSchema,
135
+ description: 'Wait for notification popup to appear (e.g., after dapp interaction). Sets the notification page as the active page for subsequent interactions.',
136
+ handler: handleWaitForNotification,
137
+ },
138
+ switch_to_tab: {
139
+ schema: switchToTabInputSchema,
140
+ description: `Switch the active page to a different tracked tab. Use this to direct ${TOOL_PREFIX}_click, ${TOOL_PREFIX}_type, and other interaction tools to a specific page.`,
141
+ handler: handleSwitchToTab,
142
+ },
143
+ close_tab: {
144
+ schema: closeTabInputSchema,
145
+ description: 'Close a specific tab by role or URL. Cannot close the extension home page. If closing the active tab, automatically switches to extension home.',
146
+ handler: handleCloseTab,
147
+ },
148
+ list_testids: {
149
+ schema: listTestIdsInputSchema,
150
+ description: 'List all visible data-testid attributes on the current page. Use to discover available interaction targets.',
151
+ handler: handleListTestIds,
152
+ },
153
+ accessibility_snapshot: {
154
+ schema: accessibilitySnapshotInputSchema,
155
+ description: `Get trimmed accessibility tree with deterministic refs (e1, e2, ...). Use refs with ${TOOL_PREFIX}_click/${TOOL_PREFIX}_type.`,
156
+ handler: handleAccessibilitySnapshot,
157
+ },
158
+ describe_screen: {
159
+ schema: describeScreenInputSchema,
160
+ description: 'Get comprehensive screen state: extension state + testIds + accessibility snapshot. Optional screenshot.',
161
+ handler: handleDescribeScreen,
162
+ },
163
+ screenshot: {
164
+ schema: screenshotInputSchema,
165
+ description: 'Take a screenshot and save to test-artifacts/screenshots/',
166
+ handler: handleScreenshot,
167
+ },
168
+ click: {
169
+ schema: clickInputSchema,
170
+ description: 'Click an element. Specify exactly one of: a11yRef, testId, or selector.',
171
+ handler: handleClick,
172
+ },
173
+ type: {
174
+ schema: typeInputSchema,
175
+ description: 'Type text into an element. Specify exactly one of: a11yRef, testId, or selector.',
176
+ handler: handleType,
177
+ },
178
+ wait_for: {
179
+ schema: waitForInputSchema,
180
+ description: 'Wait for an element to become visible. Specify exactly one of: a11yRef, testId, or selector.',
181
+ handler: handleWaitFor,
182
+ },
183
+ knowledge_last: {
184
+ schema: knowledgeLastInputSchema,
185
+ description: 'Get the last N step records from the knowledge store for the current session.',
186
+ handler: handleKnowledgeLast,
187
+ },
188
+ knowledge_search: {
189
+ schema: knowledgeSearchInputSchema,
190
+ description: 'Search step records by tool name, screen, testId, or accessibility names. Default searches all sessions.',
191
+ handler: handleKnowledgeSearch,
192
+ },
193
+ knowledge_summarize: {
194
+ schema: knowledgeSummarizeInputSchema,
195
+ description: 'Generate a recipe-like summary of steps taken in a session.',
196
+ handler: handleKnowledgeSummarize,
197
+ },
198
+ knowledge_sessions: {
199
+ schema: knowledgeSessionsInputSchema,
200
+ description: 'List recent sessions with metadata for cross-session knowledge retrieval.',
201
+ handler: handleKnowledgeSessions,
202
+ },
203
+ seed_contract: {
204
+ schema: seedContractInputSchema,
205
+ description: 'Deploy a smart contract to the local Anvil node. Available: hst (ERC20 TST token), nfts (ERC721), erc1155, piggybank, failing (reverts), multisig, entrypoint (ERC-4337), simpleAccountFactory, verifyingPaymaster.',
206
+ handler: createSeedContractHandler(),
207
+ },
208
+ seed_contracts: {
209
+ schema: seedContractsInputSchema,
210
+ description: 'Deploy multiple smart contracts in sequence.',
211
+ handler: createSeedContractsHandler(),
212
+ },
213
+ get_contract_address: {
214
+ schema: getContractAddressInputSchema,
215
+ description: 'Get the deployed address of a smart contract.',
216
+ handler: createGetContractAddressHandler(),
217
+ },
218
+ list_contracts: {
219
+ schema: listDeployedContractsInputSchema,
220
+ description: 'List all smart contracts deployed in this session.',
221
+ handler: createListDeployedContractsHandler(),
222
+ },
223
+ run_steps: {
224
+ schema: runStepsInputSchema,
225
+ description: 'Execute multiple tools in sequence. Reduces round trips for multi-step flows.',
226
+ handler: handleRunSteps,
227
+ },
228
+ set_context: {
229
+ schema: setContextInputSchema,
230
+ description: 'Switch workflow context (e2e or prod). Cannot switch during active session.',
231
+ handler: handleSetContext,
232
+ },
233
+ get_context: {
234
+ schema: getContextInputSchema,
235
+ description: 'Get current context, available capabilities, and whether context can be switched.',
236
+ handler: handleGetContext,
237
+ },
238
+ clipboard: {
239
+ schema: clipboardInputSchema,
240
+ description: "Write text to or read text from the browser clipboard. Use action='write' with text parameter to write, or action='read' to read current clipboard content. Useful for pasting SRP or other data into components that have paste handlers.",
241
+ handler: handleClipboard,
242
+ },
243
+ };
244
+ /**
245
+ * Zod v4's toJSONSchema() marks properties with defaults as required.
246
+ * This is incorrect for MCP tool input schemas where LLM clients shouldn't
247
+ * be required to provide values that have defaults. This function recursively
248
+ * removes those properties from the required array.
249
+ *
250
+ * @param schema The JSON schema to process
251
+ * @returns The modified schema with defaults removed from required array
252
+ */
253
+ function removeDefaultsFromRequired(schema) {
254
+ const result = { ...schema };
255
+ if (Array.isArray(result.allOf)) {
256
+ result.allOf = result.allOf.map((item) => removeDefaultsFromRequired(item));
257
+ }
258
+ if (Array.isArray(result.anyOf)) {
259
+ result.anyOf = result.anyOf.map((item) => removeDefaultsFromRequired(item));
260
+ }
261
+ if (Array.isArray(result.oneOf)) {
262
+ result.oneOf = result.oneOf.map((item) => removeDefaultsFromRequired(item));
263
+ }
264
+ if (result.properties &&
265
+ typeof result.properties === 'object' &&
266
+ result.properties !== null) {
267
+ const newProperties = {};
268
+ for (const [key, value] of Object.entries(result.properties)) {
269
+ if (value && typeof value === 'object') {
270
+ newProperties[key] = removeDefaultsFromRequired(value);
271
+ }
272
+ else {
273
+ newProperties[key] = value;
274
+ }
275
+ }
276
+ result.properties = newProperties;
277
+ }
278
+ if (Array.isArray(result.required) &&
279
+ result.properties &&
280
+ typeof result.properties === 'object') {
281
+ const properties = result.properties;
282
+ result.required = result.required.filter((propName) => {
283
+ const prop = properties[propName];
284
+ return prop && !('default' in prop);
285
+ });
286
+ if (result.required.length === 0) {
287
+ delete result.required;
288
+ }
289
+ }
290
+ return result;
291
+ }
292
+ /**
293
+ * MCP protocol doesn't support allOf/oneOf/anyOf at the top level of input schemas.
294
+ * This flattens allOf into a single merged object schema.
295
+ *
296
+ * @param schema The JSON schema to flatten
297
+ * @returns The flattened schema with allOf merged into properties
298
+ */
299
+ function flattenTopLevelAllOf(schema) {
300
+ if (!Array.isArray(schema.allOf)) {
301
+ return schema;
302
+ }
303
+ const mergedProperties = {};
304
+ const mergedRequired = [];
305
+ for (const subSchema of schema.allOf) {
306
+ if (subSchema.properties && typeof subSchema.properties === 'object') {
307
+ Object.assign(mergedProperties, subSchema.properties);
308
+ }
309
+ if (Array.isArray(subSchema.required)) {
310
+ mergedRequired.push(...subSchema.required);
311
+ }
312
+ }
313
+ const result = {
314
+ type: 'object',
315
+ properties: mergedProperties,
316
+ additionalProperties: false,
317
+ };
318
+ if (mergedRequired.length > 0) {
319
+ result.required = [...new Set(mergedRequired)];
320
+ }
321
+ return result;
322
+ }
323
+ /**
324
+ * Convert a Zod schema to a JSON schema suitable for MCP tool definitions.
325
+ *
326
+ * @param schema The Zod schema to convert
327
+ * @returns The converted JSON schema with defaults removed and allOf flattened
328
+ */
329
+ function zodSchemaToJsonSchema(schema) {
330
+ const jsonSchema = schema.toJSONSchema();
331
+ const { $schema: _, ...rest } = jsonSchema;
332
+ const flattened = flattenTopLevelAllOf(rest);
333
+ if (flattened.type === 'object' && !('additionalProperties' in flattened)) {
334
+ flattened.additionalProperties = false;
335
+ }
336
+ return removeDefaultsFromRequired(flattened);
337
+ }
338
+ /**
339
+ * Get all tool definitions with their schemas and descriptions.
340
+ *
341
+ * @returns Array of tool definitions for all available MCP tools
342
+ */
343
+ export function getToolDefinitions() {
344
+ return Object.entries(tools).map(([baseName, tool]) => ({
345
+ name: `${TOOL_PREFIX}_${baseName}`,
346
+ description: tool.description,
347
+ inputSchema: zodSchemaToJsonSchema(tool.schema),
348
+ }));
349
+ }
350
+ /**
351
+ * Get the handler function for a specific tool by name.
352
+ *
353
+ * @param name The tool name (with or without mm_ prefix)
354
+ * @returns The tool handler function or undefined if tool not found
355
+ */
356
+ export function getToolHandler(name) {
357
+ const prefixedMatch = Object.entries(tools).find(([baseName]) => `${TOOL_PREFIX}_${baseName}` === name);
358
+ if (prefixedMatch) {
359
+ return prefixedMatch[1].handler;
360
+ }
361
+ const tool = tools[name];
362
+ return tool?.handler;
363
+ }
364
+ /**
365
+ * Check if a tool handler exists for the given tool name.
366
+ *
367
+ * @param name The tool name to check
368
+ * @returns True if a handler exists for the tool, false otherwise
369
+ */
370
+ export function hasToolHandler(name) {
371
+ return getToolHandler(name) !== undefined;
372
+ }
373
+ /**
374
+ * Extract the base name from a tool name by removing the mm_ prefix.
375
+ *
376
+ * @param toolName The tool name (with or without mm_ prefix)
377
+ * @returns The base name without the prefix
378
+ */
379
+ export function extractBaseName(toolName) {
380
+ const prefixWithUnderscore = `${TOOL_PREFIX}_`;
381
+ if (toolName.startsWith(prefixWithUnderscore)) {
382
+ return toolName.slice(prefixWithUnderscore.length);
383
+ }
384
+ return toolName;
385
+ }
386
+ /**
387
+ * Validate tool input against the tool's schema and return parsed data.
388
+ *
389
+ * @param toolName The tool name to validate input for
390
+ * @param input The input data to validate
391
+ * @returns The validated and parsed input data
392
+ */
393
+ export function validateToolInput(toolName, input) {
394
+ const baseName = extractBaseName(toolName);
395
+ const tool = tools[baseName];
396
+ if (!tool) {
397
+ throw new Error(`Unknown tool: ${toolName}`);
398
+ }
399
+ return tool.schema.parse(input ?? {});
400
+ }
401
+ /**
402
+ * Safely validate tool input without throwing errors.
403
+ *
404
+ * @param toolName The tool name to validate input for
405
+ * @param input The input data to validate
406
+ * @returns Object with success flag and either parsed data or error message
407
+ */
408
+ export function safeValidateToolInput(toolName, input) {
409
+ const baseName = extractBaseName(toolName);
410
+ const tool = tools[baseName];
411
+ if (!tool) {
412
+ return { success: false, error: `Unknown tool: ${toolName}` };
413
+ }
414
+ const result = tool.schema.safeParse(input ?? {});
415
+ if (!result.success) {
416
+ const errorMessage = result.error.issues
417
+ .map((issue) => `${issue.path.join('.')}: ${issue.message}`)
418
+ .join('; ');
419
+ return { success: false, error: errorMessage };
420
+ }
421
+ return { success: true, data: result.data };
422
+ }
423
+ /**
424
+ * Get all available tool base names (without mm_ prefix).
425
+ *
426
+ * @returns Array of tool base names
427
+ */
428
+ export function getToolNames() {
429
+ return Object.keys(tools);
430
+ }
431
+ /**
432
+ * Get all available tool names with mm_ prefix.
433
+ *
434
+ * @returns Array of prefixed tool names
435
+ */
436
+ export function getPrefixedToolNames() {
437
+ return Object.keys(tools).map((name) => `${TOOL_PREFIX}_${name}`);
438
+ }
439
+ /**
440
+ * Build a record mapping prefixed tool names to their handler functions.
441
+ *
442
+ * @returns Record of tool name to handler function mappings
443
+ */
444
+ export function buildToolHandlersRecord() {
445
+ const handlers = {};
446
+ for (const [baseName, tool] of Object.entries(tools)) {
447
+ handlers[`${TOOL_PREFIX}_${baseName}`] = tool.handler;
448
+ }
449
+ return handlers;
450
+ }
451
+ //# sourceMappingURL=definitions.mjs.map