@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,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isE2EConfig = isE2EConfig;
4
+ exports.isProdConfig = isProdConfig;
5
+ exports.hasCapability = hasCapability;
6
+ /**
7
+ * Type guard to check if config is for E2E environment.
8
+ *
9
+ * @param config - The environment configuration to check
10
+ * @returns True if the config is for E2E environment, false otherwise
11
+ */
12
+ function isE2EConfig(config) {
13
+ return config.environment === 'e2e';
14
+ }
15
+ /**
16
+ * Type guard to check if config is for production environment.
17
+ *
18
+ * @param config - The environment configuration to check
19
+ * @returns True if the config is for production environment, false otherwise
20
+ */
21
+ function isProdConfig(config) {
22
+ return config.environment === 'prod';
23
+ }
24
+ /**
25
+ * Type guard to check if a capability is available in the workflow context.
26
+ *
27
+ * @param context - The workflow context to check
28
+ * @param key - The capability key to verify
29
+ * @returns True if the capability is defined, narrowing the type accordingly
30
+ */
31
+ function hasCapability(context, key) {
32
+ return context[key] !== undefined;
33
+ }
34
+ //# sourceMappingURL=context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.cjs","sourceRoot":"","sources":["../../src/capabilities/context.ts"],"names":[],"mappings":";;AAwFA,kCAIC;AAQD,oCAIC;AAmBD,sCAKC;AA9CD;;;;;GAKG;AACH,SAAgB,WAAW,CACzB,MAAyB;IAEzB,OAAO,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAC1B,MAAyB;IAEzB,OAAO,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC;AACvC,CAAC;AAYD;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,OAAwB,EACxB,GAAQ;IAER,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACpC,CAAC","sourcesContent":["import type {\n BuildCapability,\n FixtureCapability,\n ChainCapability,\n ContractSeedingCapability,\n StateSnapshotCapability,\n MockServerCapability,\n} from './types.js';\n\n/**\n * Environment mode discriminator.\n * - 'e2e': End-to-end testing environment with local chain, fixtures, and contract seeding\n * - 'prod': Production-like environment without test infrastructure\n */\nexport type EnvironmentMode = 'e2e' | 'prod';\n\n/**\n * Base configuration fields shared across all environment modes.\n */\nexport type BaseEnvironmentConfig = {\n /** Human-readable name of the extension (e.g., \"MetaMask\") */\n extensionName: string;\n /** Default password for wallet unlock operations */\n defaultPassword?: string;\n /** Prefix for MCP tool names (e.g., \"mm\" -> \"mm_build\", \"mm_launch\") */\n toolPrefix?: string;\n /** Directory for storing screenshots and other artifacts */\n artifactsDir?: string;\n};\n\n/**\n * Configuration specific to E2E testing environment.\n * Includes local chain settings and test infrastructure options.\n */\nexport type E2EEnvironmentConfig = BaseEnvironmentConfig & {\n /** Discriminator for E2E environment */\n environment: 'e2e';\n /** Chain ID for local Anvil node (default: 1337) */\n defaultChainId?: number;\n /** Port configuration for test infrastructure */\n ports?: {\n /** Anvil local chain port (default: 8545) */\n anvil?: number;\n /** Fixture server port (default: 12345) */\n fixtureServer?: number;\n };\n /** Fork configuration for mainnet forking */\n fork?: {\n /** RPC URL to fork from */\n url?: string;\n /** Block number to fork at */\n blockNumber?: number;\n };\n};\n\n/**\n * Configuration specific to production-like environment.\n * Minimal configuration without test infrastructure.\n */\nexport type ProdEnvironmentConfig = BaseEnvironmentConfig & {\n /** Discriminator for production environment */\n environment: 'prod';\n /** Optional chain ID for network detection (no local chain) */\n defaultChainId?: number;\n};\n\n/**\n * Union type for environment-specific configuration.\n * Use discriminated union pattern with `environment` field.\n *\n * @example\n * ```typescript\n * function processConfig(config: EnvironmentConfig) {\n * if (config.environment === 'e2e') {\n * // TypeScript knows config has E2E-specific fields\n * console.log(config.ports?.anvil);\n * }\n * }\n * ```\n */\nexport type EnvironmentConfig = E2EEnvironmentConfig | ProdEnvironmentConfig;\n\n/**\n * Type guard to check if config is for E2E environment.\n *\n * @param config - The environment configuration to check\n * @returns True if the config is for E2E environment, false otherwise\n */\nexport function isE2EConfig(\n config: EnvironmentConfig,\n): config is E2EEnvironmentConfig {\n return config.environment === 'e2e';\n}\n\n/**\n * Type guard to check if config is for production environment.\n *\n * @param config - The environment configuration to check\n * @returns True if the config is for production environment, false otherwise\n */\nexport function isProdConfig(\n config: EnvironmentConfig,\n): config is ProdEnvironmentConfig {\n return config.environment === 'prod';\n}\n\nexport type WorkflowContext = {\n build?: BuildCapability;\n fixture?: FixtureCapability;\n chain?: ChainCapability;\n contractSeeding?: ContractSeedingCapability;\n stateSnapshot?: StateSnapshotCapability;\n mockServer?: MockServerCapability;\n config: EnvironmentConfig;\n};\n\n/**\n * Type guard to check if a capability is available in the workflow context.\n *\n * @param context - The workflow context to check\n * @param key - The capability key to verify\n * @returns True if the capability is defined, narrowing the type accordingly\n */\nexport function hasCapability<Key extends keyof WorkflowContext>(\n context: WorkflowContext,\n key: Key,\n): context is WorkflowContext & Required<Pick<WorkflowContext, Key>> {\n return context[key] !== undefined;\n}\n"]}
@@ -0,0 +1,101 @@
1
+ import type { BuildCapability, FixtureCapability, ChainCapability, ContractSeedingCapability, StateSnapshotCapability, MockServerCapability } from "./types.cjs";
2
+ /**
3
+ * Environment mode discriminator.
4
+ * - 'e2e': End-to-end testing environment with local chain, fixtures, and contract seeding
5
+ * - 'prod': Production-like environment without test infrastructure
6
+ */
7
+ export type EnvironmentMode = 'e2e' | 'prod';
8
+ /**
9
+ * Base configuration fields shared across all environment modes.
10
+ */
11
+ export type BaseEnvironmentConfig = {
12
+ /** Human-readable name of the extension (e.g., "MetaMask") */
13
+ extensionName: string;
14
+ /** Default password for wallet unlock operations */
15
+ defaultPassword?: string;
16
+ /** Prefix for MCP tool names (e.g., "mm" -> "mm_build", "mm_launch") */
17
+ toolPrefix?: string;
18
+ /** Directory for storing screenshots and other artifacts */
19
+ artifactsDir?: string;
20
+ };
21
+ /**
22
+ * Configuration specific to E2E testing environment.
23
+ * Includes local chain settings and test infrastructure options.
24
+ */
25
+ export type E2EEnvironmentConfig = BaseEnvironmentConfig & {
26
+ /** Discriminator for E2E environment */
27
+ environment: 'e2e';
28
+ /** Chain ID for local Anvil node (default: 1337) */
29
+ defaultChainId?: number;
30
+ /** Port configuration for test infrastructure */
31
+ ports?: {
32
+ /** Anvil local chain port (default: 8545) */
33
+ anvil?: number;
34
+ /** Fixture server port (default: 12345) */
35
+ fixtureServer?: number;
36
+ };
37
+ /** Fork configuration for mainnet forking */
38
+ fork?: {
39
+ /** RPC URL to fork from */
40
+ url?: string;
41
+ /** Block number to fork at */
42
+ blockNumber?: number;
43
+ };
44
+ };
45
+ /**
46
+ * Configuration specific to production-like environment.
47
+ * Minimal configuration without test infrastructure.
48
+ */
49
+ export type ProdEnvironmentConfig = BaseEnvironmentConfig & {
50
+ /** Discriminator for production environment */
51
+ environment: 'prod';
52
+ /** Optional chain ID for network detection (no local chain) */
53
+ defaultChainId?: number;
54
+ };
55
+ /**
56
+ * Union type for environment-specific configuration.
57
+ * Use discriminated union pattern with `environment` field.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * function processConfig(config: EnvironmentConfig) {
62
+ * if (config.environment === 'e2e') {
63
+ * // TypeScript knows config has E2E-specific fields
64
+ * console.log(config.ports?.anvil);
65
+ * }
66
+ * }
67
+ * ```
68
+ */
69
+ export type EnvironmentConfig = E2EEnvironmentConfig | ProdEnvironmentConfig;
70
+ /**
71
+ * Type guard to check if config is for E2E environment.
72
+ *
73
+ * @param config - The environment configuration to check
74
+ * @returns True if the config is for E2E environment, false otherwise
75
+ */
76
+ export declare function isE2EConfig(config: EnvironmentConfig): config is E2EEnvironmentConfig;
77
+ /**
78
+ * Type guard to check if config is for production environment.
79
+ *
80
+ * @param config - The environment configuration to check
81
+ * @returns True if the config is for production environment, false otherwise
82
+ */
83
+ export declare function isProdConfig(config: EnvironmentConfig): config is ProdEnvironmentConfig;
84
+ export type WorkflowContext = {
85
+ build?: BuildCapability;
86
+ fixture?: FixtureCapability;
87
+ chain?: ChainCapability;
88
+ contractSeeding?: ContractSeedingCapability;
89
+ stateSnapshot?: StateSnapshotCapability;
90
+ mockServer?: MockServerCapability;
91
+ config: EnvironmentConfig;
92
+ };
93
+ /**
94
+ * Type guard to check if a capability is available in the workflow context.
95
+ *
96
+ * @param context - The workflow context to check
97
+ * @param key - The capability key to verify
98
+ * @returns True if the capability is defined, narrowing the type accordingly
99
+ */
100
+ export declare function hasCapability<Key extends keyof WorkflowContext>(context: WorkflowContext, key: Key): context is WorkflowContext & Required<Pick<WorkflowContext, Key>>;
101
+ //# sourceMappingURL=context.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.cts","sourceRoot":"","sources":["../../src/capabilities/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACrB,oBAAmB;AAEpB;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IACzD,wCAAwC;IACxC,WAAW,EAAE,KAAK,CAAC;IACnB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,KAAK,CAAC,EAAE;QACN,6CAA6C;QAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,2CAA2C;QAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,6CAA6C;IAC7C,IAAI,CAAC,EAAE;QACL,2BAA2B;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,8BAA8B;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,GACxB,MAAM,IAAI,oBAAoB,CAEhC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,iBAAiB,GACxB,MAAM,IAAI,qBAAqB,CAEjC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,SAAS,MAAM,eAAe,EAC7D,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,GAAG,GACP,OAAO,IAAI,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAEnE"}
@@ -0,0 +1,101 @@
1
+ import type { BuildCapability, FixtureCapability, ChainCapability, ContractSeedingCapability, StateSnapshotCapability, MockServerCapability } from "./types.mjs";
2
+ /**
3
+ * Environment mode discriminator.
4
+ * - 'e2e': End-to-end testing environment with local chain, fixtures, and contract seeding
5
+ * - 'prod': Production-like environment without test infrastructure
6
+ */
7
+ export type EnvironmentMode = 'e2e' | 'prod';
8
+ /**
9
+ * Base configuration fields shared across all environment modes.
10
+ */
11
+ export type BaseEnvironmentConfig = {
12
+ /** Human-readable name of the extension (e.g., "MetaMask") */
13
+ extensionName: string;
14
+ /** Default password for wallet unlock operations */
15
+ defaultPassword?: string;
16
+ /** Prefix for MCP tool names (e.g., "mm" -> "mm_build", "mm_launch") */
17
+ toolPrefix?: string;
18
+ /** Directory for storing screenshots and other artifacts */
19
+ artifactsDir?: string;
20
+ };
21
+ /**
22
+ * Configuration specific to E2E testing environment.
23
+ * Includes local chain settings and test infrastructure options.
24
+ */
25
+ export type E2EEnvironmentConfig = BaseEnvironmentConfig & {
26
+ /** Discriminator for E2E environment */
27
+ environment: 'e2e';
28
+ /** Chain ID for local Anvil node (default: 1337) */
29
+ defaultChainId?: number;
30
+ /** Port configuration for test infrastructure */
31
+ ports?: {
32
+ /** Anvil local chain port (default: 8545) */
33
+ anvil?: number;
34
+ /** Fixture server port (default: 12345) */
35
+ fixtureServer?: number;
36
+ };
37
+ /** Fork configuration for mainnet forking */
38
+ fork?: {
39
+ /** RPC URL to fork from */
40
+ url?: string;
41
+ /** Block number to fork at */
42
+ blockNumber?: number;
43
+ };
44
+ };
45
+ /**
46
+ * Configuration specific to production-like environment.
47
+ * Minimal configuration without test infrastructure.
48
+ */
49
+ export type ProdEnvironmentConfig = BaseEnvironmentConfig & {
50
+ /** Discriminator for production environment */
51
+ environment: 'prod';
52
+ /** Optional chain ID for network detection (no local chain) */
53
+ defaultChainId?: number;
54
+ };
55
+ /**
56
+ * Union type for environment-specific configuration.
57
+ * Use discriminated union pattern with `environment` field.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * function processConfig(config: EnvironmentConfig) {
62
+ * if (config.environment === 'e2e') {
63
+ * // TypeScript knows config has E2E-specific fields
64
+ * console.log(config.ports?.anvil);
65
+ * }
66
+ * }
67
+ * ```
68
+ */
69
+ export type EnvironmentConfig = E2EEnvironmentConfig | ProdEnvironmentConfig;
70
+ /**
71
+ * Type guard to check if config is for E2E environment.
72
+ *
73
+ * @param config - The environment configuration to check
74
+ * @returns True if the config is for E2E environment, false otherwise
75
+ */
76
+ export declare function isE2EConfig(config: EnvironmentConfig): config is E2EEnvironmentConfig;
77
+ /**
78
+ * Type guard to check if config is for production environment.
79
+ *
80
+ * @param config - The environment configuration to check
81
+ * @returns True if the config is for production environment, false otherwise
82
+ */
83
+ export declare function isProdConfig(config: EnvironmentConfig): config is ProdEnvironmentConfig;
84
+ export type WorkflowContext = {
85
+ build?: BuildCapability;
86
+ fixture?: FixtureCapability;
87
+ chain?: ChainCapability;
88
+ contractSeeding?: ContractSeedingCapability;
89
+ stateSnapshot?: StateSnapshotCapability;
90
+ mockServer?: MockServerCapability;
91
+ config: EnvironmentConfig;
92
+ };
93
+ /**
94
+ * Type guard to check if a capability is available in the workflow context.
95
+ *
96
+ * @param context - The workflow context to check
97
+ * @param key - The capability key to verify
98
+ * @returns True if the capability is defined, narrowing the type accordingly
99
+ */
100
+ export declare function hasCapability<Key extends keyof WorkflowContext>(context: WorkflowContext, key: Key): context is WorkflowContext & Required<Pick<WorkflowContext, Key>>;
101
+ //# sourceMappingURL=context.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.mts","sourceRoot":"","sources":["../../src/capabilities/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACrB,oBAAmB;AAEpB;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IACzD,wCAAwC;IACxC,WAAW,EAAE,KAAK,CAAC;IACnB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,KAAK,CAAC,EAAE;QACN,6CAA6C;QAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,2CAA2C;QAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,6CAA6C;IAC7C,IAAI,CAAC,EAAE;QACL,2BAA2B;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,8BAA8B;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,GACxB,MAAM,IAAI,oBAAoB,CAEhC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,iBAAiB,GACxB,MAAM,IAAI,qBAAqB,CAEjC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,SAAS,MAAM,eAAe,EAC7D,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,GAAG,GACP,OAAO,IAAI,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAEnE"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Type guard to check if config is for E2E environment.
3
+ *
4
+ * @param config - The environment configuration to check
5
+ * @returns True if the config is for E2E environment, false otherwise
6
+ */
7
+ export function isE2EConfig(config) {
8
+ return config.environment === 'e2e';
9
+ }
10
+ /**
11
+ * Type guard to check if config is for production environment.
12
+ *
13
+ * @param config - The environment configuration to check
14
+ * @returns True if the config is for production environment, false otherwise
15
+ */
16
+ export function isProdConfig(config) {
17
+ return config.environment === 'prod';
18
+ }
19
+ /**
20
+ * Type guard to check if a capability is available in the workflow context.
21
+ *
22
+ * @param context - The workflow context to check
23
+ * @param key - The capability key to verify
24
+ * @returns True if the capability is defined, narrowing the type accordingly
25
+ */
26
+ export function hasCapability(context, key) {
27
+ return context[key] !== undefined;
28
+ }
29
+ //# sourceMappingURL=context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","sourceRoot":"","sources":["../../src/capabilities/context.ts"],"names":[],"mappings":"AAkFA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,MAAyB;IAEzB,OAAO,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB;IAEzB,OAAO,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC;AACvC,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAwB,EACxB,GAAQ;IAER,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACpC,CAAC","sourcesContent":["import type {\n BuildCapability,\n FixtureCapability,\n ChainCapability,\n ContractSeedingCapability,\n StateSnapshotCapability,\n MockServerCapability,\n} from './types.js';\n\n/**\n * Environment mode discriminator.\n * - 'e2e': End-to-end testing environment with local chain, fixtures, and contract seeding\n * - 'prod': Production-like environment without test infrastructure\n */\nexport type EnvironmentMode = 'e2e' | 'prod';\n\n/**\n * Base configuration fields shared across all environment modes.\n */\nexport type BaseEnvironmentConfig = {\n /** Human-readable name of the extension (e.g., \"MetaMask\") */\n extensionName: string;\n /** Default password for wallet unlock operations */\n defaultPassword?: string;\n /** Prefix for MCP tool names (e.g., \"mm\" -> \"mm_build\", \"mm_launch\") */\n toolPrefix?: string;\n /** Directory for storing screenshots and other artifacts */\n artifactsDir?: string;\n};\n\n/**\n * Configuration specific to E2E testing environment.\n * Includes local chain settings and test infrastructure options.\n */\nexport type E2EEnvironmentConfig = BaseEnvironmentConfig & {\n /** Discriminator for E2E environment */\n environment: 'e2e';\n /** Chain ID for local Anvil node (default: 1337) */\n defaultChainId?: number;\n /** Port configuration for test infrastructure */\n ports?: {\n /** Anvil local chain port (default: 8545) */\n anvil?: number;\n /** Fixture server port (default: 12345) */\n fixtureServer?: number;\n };\n /** Fork configuration for mainnet forking */\n fork?: {\n /** RPC URL to fork from */\n url?: string;\n /** Block number to fork at */\n blockNumber?: number;\n };\n};\n\n/**\n * Configuration specific to production-like environment.\n * Minimal configuration without test infrastructure.\n */\nexport type ProdEnvironmentConfig = BaseEnvironmentConfig & {\n /** Discriminator for production environment */\n environment: 'prod';\n /** Optional chain ID for network detection (no local chain) */\n defaultChainId?: number;\n};\n\n/**\n * Union type for environment-specific configuration.\n * Use discriminated union pattern with `environment` field.\n *\n * @example\n * ```typescript\n * function processConfig(config: EnvironmentConfig) {\n * if (config.environment === 'e2e') {\n * // TypeScript knows config has E2E-specific fields\n * console.log(config.ports?.anvil);\n * }\n * }\n * ```\n */\nexport type EnvironmentConfig = E2EEnvironmentConfig | ProdEnvironmentConfig;\n\n/**\n * Type guard to check if config is for E2E environment.\n *\n * @param config - The environment configuration to check\n * @returns True if the config is for E2E environment, false otherwise\n */\nexport function isE2EConfig(\n config: EnvironmentConfig,\n): config is E2EEnvironmentConfig {\n return config.environment === 'e2e';\n}\n\n/**\n * Type guard to check if config is for production environment.\n *\n * @param config - The environment configuration to check\n * @returns True if the config is for production environment, false otherwise\n */\nexport function isProdConfig(\n config: EnvironmentConfig,\n): config is ProdEnvironmentConfig {\n return config.environment === 'prod';\n}\n\nexport type WorkflowContext = {\n build?: BuildCapability;\n fixture?: FixtureCapability;\n chain?: ChainCapability;\n contractSeeding?: ContractSeedingCapability;\n stateSnapshot?: StateSnapshotCapability;\n mockServer?: MockServerCapability;\n config: EnvironmentConfig;\n};\n\n/**\n * Type guard to check if a capability is available in the workflow context.\n *\n * @param context - The workflow context to check\n * @param key - The capability key to verify\n * @returns True if the capability is defined, narrowing the type accordingly\n */\nexport function hasCapability<Key extends keyof WorkflowContext>(\n context: WorkflowContext,\n key: Key,\n): context is WorkflowContext & Required<Pick<WorkflowContext, Key>> {\n return context[key] !== undefined;\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./context.cjs"), exports);
18
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA6B","sourcesContent":["export type * from './types.js';\nexport * from './context.js';\n"]}
@@ -0,0 +1,3 @@
1
+ export type * from "./types.cjs";
2
+ export * from "./context.cjs";
3
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,iCAAgC;AAChC,8BAA6B"}
@@ -0,0 +1,3 @@
1
+ export type * from "./types.mjs";
2
+ export * from "./context.mjs";
3
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,iCAAgC;AAChC,8BAA6B"}
@@ -0,0 +1,2 @@
1
+ export * from "./context.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AACA,8BAA6B","sourcesContent":["export type * from './types.js';\nexport * from './context.js';\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Page, BrowserContext } from '@playwright/test';\n\nexport type StateMode = 'default' | 'onboarding' | 'custom';\n\nexport type NetworkMode = 'localhost' | 'fork' | 'custom';\n\nexport type NetworkConfig = {\n mode?: NetworkMode;\n chainId?: number;\n rpcUrl?: string;\n forkBlockNumber?: number;\n chainName?: string;\n nativeCurrency?: {\n symbol: string;\n decimals: number;\n };\n};\n\nexport type FixtureData = {\n data: Record<string, unknown>;\n meta?: {\n version: number;\n };\n};\n\nexport type PortsConfig = {\n anvil?: number;\n fixtureServer?: number;\n};\n\nexport type ScreenshotOptions = {\n name: string;\n fullPage?: boolean;\n selector?: string;\n timestamp?: boolean;\n page?: Page;\n};\n\nexport type ScreenshotResult = {\n path: string;\n base64: string;\n width: number;\n height: number;\n};\n\nexport type ScreenName =\n | 'unlock'\n | 'home'\n | 'onboarding-welcome'\n | 'onboarding-import'\n | 'onboarding-create'\n | 'onboarding-srp'\n | 'onboarding-password'\n | 'onboarding-complete'\n | 'onboarding-metametrics'\n | 'settings'\n | 'send'\n | 'swap'\n | 'bridge'\n | 'confirm-transaction'\n | 'confirm-signature'\n | 'notification'\n | 'unknown';\n\nexport type ExtensionState = {\n isLoaded: boolean;\n currentUrl: string;\n extensionId: string;\n isUnlocked: boolean;\n currentScreen: ScreenName;\n accountAddress: string | null;\n networkName: string | null;\n chainId: number | null;\n balance: string | null;\n};\n\nexport type LaunchOptions = {\n extensionPath?: string;\n viewportWidth?: number;\n viewportHeight?: number;\n slowMo?: number;\n autoBuild?: boolean;\n stateMode?: StateMode;\n fixture?: FixtureData;\n ports?: PortsConfig;\n seedContracts?: string[];\n};\n\nexport type BrowserSession = {\n context: BrowserContext;\n extensionPage: Page;\n extensionId: string;\n};\n\nexport type BuildOptions = {\n buildType?: string;\n force?: boolean;\n};\n\nexport type BuildResult = {\n success: boolean;\n extensionPath: string;\n durationMs: number;\n error?: string;\n};\n\nexport type WalletState = FixtureData;\n\nexport type DeployOptions = {\n hardfork?: string;\n deployerOptions?: {\n fromAddress?: string;\n fromPrivateKey?: string;\n };\n};\n\nexport type ContractDeployment = {\n name: string;\n address: string;\n deployedAt: string;\n};\n\nexport type ContractInfo = {\n name: string;\n address: string;\n deployedAt: string;\n};\n\nexport type StateSnapshot = ExtensionState;\n\nexport type StateOptions = {\n extensionId?: string;\n chainId?: number;\n};\n\nexport type OnboardOptions = {\n seedPhrase?: string;\n password?: string;\n};\n\nexport type Observation = {\n state: ExtensionState;\n testIds: string[];\n a11yNodes: unknown[];\n};\n\nexport type BuildCapability = {\n build(options?: BuildOptions): Promise<BuildResult>;\n getExtensionPath(): string;\n isBuilt(): Promise<boolean>;\n};\n\nexport type FixtureCapability = {\n start(state: WalletState): Promise<void>;\n stop(): Promise<void>;\n getDefaultState(): WalletState;\n getOnboardingState(): WalletState;\n resolvePreset(presetName: string): WalletState;\n};\n\nexport type ChainCapability = {\n start(): Promise<void>;\n stop(): Promise<void>;\n isRunning(): boolean;\n setPort(port: number): void;\n};\n\nexport type ContractSeedingCapability = {\n deployContract(\n name: string,\n options?: DeployOptions,\n ): Promise<ContractDeployment>;\n deployContracts(\n names: string[],\n options?: DeployOptions,\n ): Promise<{\n deployed: ContractDeployment[];\n failed: {\n name: string;\n error: string;\n }[];\n }>;\n getContractAddress(name: string): string | null;\n listDeployedContracts(): ContractInfo[];\n getAvailableContracts(): string[];\n clearRegistry(): void;\n initialize(): void;\n};\n\nexport type StateSnapshotCapability = {\n getState(page: Page, options: StateOptions): Promise<StateSnapshot>;\n detectCurrentScreen(page: Page): Promise<string>;\n};\n\nexport type MockServerCapability = {\n start(): Promise<void>;\n stop(): Promise<void>;\n isRunning(): boolean;\n getServer(): unknown;\n getPort(): number;\n};\n"]}
@@ -0,0 +1,152 @@
1
+ import type { Page, BrowserContext } from "@playwright/test";
2
+ export type StateMode = 'default' | 'onboarding' | 'custom';
3
+ export type NetworkMode = 'localhost' | 'fork' | 'custom';
4
+ export type NetworkConfig = {
5
+ mode?: NetworkMode;
6
+ chainId?: number;
7
+ rpcUrl?: string;
8
+ forkBlockNumber?: number;
9
+ chainName?: string;
10
+ nativeCurrency?: {
11
+ symbol: string;
12
+ decimals: number;
13
+ };
14
+ };
15
+ export type FixtureData = {
16
+ data: Record<string, unknown>;
17
+ meta?: {
18
+ version: number;
19
+ };
20
+ };
21
+ export type PortsConfig = {
22
+ anvil?: number;
23
+ fixtureServer?: number;
24
+ };
25
+ export type ScreenshotOptions = {
26
+ name: string;
27
+ fullPage?: boolean;
28
+ selector?: string;
29
+ timestamp?: boolean;
30
+ page?: Page;
31
+ };
32
+ export type ScreenshotResult = {
33
+ path: string;
34
+ base64: string;
35
+ width: number;
36
+ height: number;
37
+ };
38
+ export type ScreenName = 'unlock' | 'home' | 'onboarding-welcome' | 'onboarding-import' | 'onboarding-create' | 'onboarding-srp' | 'onboarding-password' | 'onboarding-complete' | 'onboarding-metametrics' | 'settings' | 'send' | 'swap' | 'bridge' | 'confirm-transaction' | 'confirm-signature' | 'notification' | 'unknown';
39
+ export type ExtensionState = {
40
+ isLoaded: boolean;
41
+ currentUrl: string;
42
+ extensionId: string;
43
+ isUnlocked: boolean;
44
+ currentScreen: ScreenName;
45
+ accountAddress: string | null;
46
+ networkName: string | null;
47
+ chainId: number | null;
48
+ balance: string | null;
49
+ };
50
+ export type LaunchOptions = {
51
+ extensionPath?: string;
52
+ viewportWidth?: number;
53
+ viewportHeight?: number;
54
+ slowMo?: number;
55
+ autoBuild?: boolean;
56
+ stateMode?: StateMode;
57
+ fixture?: FixtureData;
58
+ ports?: PortsConfig;
59
+ seedContracts?: string[];
60
+ };
61
+ export type BrowserSession = {
62
+ context: BrowserContext;
63
+ extensionPage: Page;
64
+ extensionId: string;
65
+ };
66
+ export type BuildOptions = {
67
+ buildType?: string;
68
+ force?: boolean;
69
+ };
70
+ export type BuildResult = {
71
+ success: boolean;
72
+ extensionPath: string;
73
+ durationMs: number;
74
+ error?: string;
75
+ };
76
+ export type WalletState = FixtureData;
77
+ export type DeployOptions = {
78
+ hardfork?: string;
79
+ deployerOptions?: {
80
+ fromAddress?: string;
81
+ fromPrivateKey?: string;
82
+ };
83
+ };
84
+ export type ContractDeployment = {
85
+ name: string;
86
+ address: string;
87
+ deployedAt: string;
88
+ };
89
+ export type ContractInfo = {
90
+ name: string;
91
+ address: string;
92
+ deployedAt: string;
93
+ };
94
+ export type StateSnapshot = ExtensionState;
95
+ export type StateOptions = {
96
+ extensionId?: string;
97
+ chainId?: number;
98
+ };
99
+ export type OnboardOptions = {
100
+ seedPhrase?: string;
101
+ password?: string;
102
+ };
103
+ export type Observation = {
104
+ state: ExtensionState;
105
+ testIds: string[];
106
+ a11yNodes: unknown[];
107
+ };
108
+ export type BuildCapability = {
109
+ build(options?: BuildOptions): Promise<BuildResult>;
110
+ getExtensionPath(): string;
111
+ isBuilt(): Promise<boolean>;
112
+ };
113
+ export type FixtureCapability = {
114
+ start(state: WalletState): Promise<void>;
115
+ stop(): Promise<void>;
116
+ getDefaultState(): WalletState;
117
+ getOnboardingState(): WalletState;
118
+ resolvePreset(presetName: string): WalletState;
119
+ };
120
+ export type ChainCapability = {
121
+ start(): Promise<void>;
122
+ stop(): Promise<void>;
123
+ isRunning(): boolean;
124
+ setPort(port: number): void;
125
+ };
126
+ export type ContractSeedingCapability = {
127
+ deployContract(name: string, options?: DeployOptions): Promise<ContractDeployment>;
128
+ deployContracts(names: string[], options?: DeployOptions): Promise<{
129
+ deployed: ContractDeployment[];
130
+ failed: {
131
+ name: string;
132
+ error: string;
133
+ }[];
134
+ }>;
135
+ getContractAddress(name: string): string | null;
136
+ listDeployedContracts(): ContractInfo[];
137
+ getAvailableContracts(): string[];
138
+ clearRegistry(): void;
139
+ initialize(): void;
140
+ };
141
+ export type StateSnapshotCapability = {
142
+ getState(page: Page, options: StateOptions): Promise<StateSnapshot>;
143
+ detectCurrentScreen(page: Page): Promise<string>;
144
+ };
145
+ export type MockServerCapability = {
146
+ start(): Promise<void>;
147
+ stop(): Promise<void>;
148
+ isRunning(): boolean;
149
+ getServer(): unknown;
150
+ getPort(): number;
151
+ };
152
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"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"}