@deeeed/metamask-harness 0.34.4 → 0.36.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 (65) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +9 -1
  3. package/adapters/core/inject.sh +3 -3
  4. package/adapters/extension/check-infura-readiness.cjs +102 -0
  5. package/adapters/extension/inject.mjs +4 -4
  6. package/adapters/extension/live.sh +25 -10
  7. package/adapters/extension/start-watch.sh +15 -0
  8. package/adapters/extension/wallet-fixture-state.cjs +3 -1
  9. package/adapters/manifest.json +16 -0
  10. package/adapters/mobile/bridge-runtime/cdp-bridge.cjs +73 -42
  11. package/adapters/mobile/inject.sh +4 -3
  12. package/adapters/mobile/reset-app-data.sh +154 -0
  13. package/adapters/mobile/verify.sh +37 -0
  14. package/dist/adapters/extension/product-config.js +29 -1
  15. package/dist/adapters/extension/runtime.js +60 -15
  16. package/dist/adapters/extension/surface.js +6 -1
  17. package/dist/adapters/mobile/surface.js +6 -1
  18. package/dist/adapters.js +18 -0
  19. package/dist/cli-commands.js +1 -1
  20. package/dist/cli.js +2 -2
  21. package/dist/command-contract.js +1 -1
  22. package/dist/commands/device-target.js +5 -0
  23. package/dist/commands/fixtures.js +106 -31
  24. package/dist/commands/launch/extension.js +39 -3
  25. package/dist/commands/launch/index.js +13 -0
  26. package/dist/doctor.js +30 -1
  27. package/dist/mm-harness-cli.js +6 -3
  28. package/dist/recipe-security.js +3 -0
  29. package/docs/RECIPES.md +29 -0
  30. package/library/actions/extension/wallet/import.mjs +234 -0
  31. package/library/actions/extension/wallet/reset.mjs +98 -0
  32. package/library/actions/extension/wallet/state.mjs +1 -0
  33. package/library/actions/mobile/analytics/consent-settings.mjs +112 -0
  34. package/library/actions/mobile/analytics/set_consent.mjs +4 -112
  35. package/library/actions/mobile/platform/bridge.mjs +8 -0
  36. package/library/actions/mobile/wallet/import.mjs +259 -0
  37. package/library/actions/mobile/wallet/reset-helper.mjs +99 -0
  38. package/library/actions/mobile/wallet/reset.mjs +7 -0
  39. package/library/actions/shared/wallet/import-source.mjs +101 -0
  40. package/library/manifests/extension.action-manifest.json +112 -0
  41. package/library/manifests/mobile.action-manifest.json +108 -0
  42. package/library/recipes/wallet/import.recipe.json +83 -0
  43. package/library/recipes/wallet/reset-import.recipe.json +88 -0
  44. package/package.json +1 -1
  45. package/scripts/completions.sh +2 -2
  46. package/scripts/site-contrast.mjs +7 -0
  47. package/site/architecture.html +14 -7
  48. package/site/assets/metamask-fox.svg +24 -0
  49. package/site/assets/progress.mjs +6 -0
  50. package/site/assets/style.css +88 -29
  51. package/site/cheatsheet.html +5 -6
  52. package/site/ecosystem.html +162 -0
  53. package/site/how-it-works.html +8 -9
  54. package/site/index.html +17 -12
  55. package/site/perps.html +103 -45
  56. package/site/recipes.html +5 -6
  57. package/site/reviewers.html +5 -6
  58. package/site/tutorials/index.html +5 -6
  59. package/site/tutorials/v1.html +5 -6
  60. package/site/tutorials/v2.html +6 -8
  61. package/site/tutorials/v3.html +5 -6
  62. package/site/tutorials/v4.html +5 -6
  63. package/site/tutorials/v5.html +5 -6
  64. package/site/tutorials/v6.html +5 -6
  65. package/site/tutorials/v7.html +5 -6
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>For Reviewers — how to read an evidence bundle</title>
7
7
  <meta name="description" content="An annotated walkthrough of a real mm-harness evidence bundle: summary.json, trace.json, diagnostics, and what an honest degraded capture looks like.">
8
- <link rel="stylesheet" href="assets/style.css">
8
+ <link rel="icon" href="assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="reviewers">
11
12
  <a class="skip" href="#summary">Skip to the walkthrough</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="index.html#prompt">Quick start</a>
21
22
  <a href="how-it-works.html">How it works</a>
22
- <a href="recipes.html">Recipe anatomy</a>
23
- <a href="perps.html">Perps</a>
23
+ <a href="perps.html">Team / Perps</a>
24
24
  <a href="cheatsheet.html">Cheatsheet</a>
25
25
  <a href="architecture.html">Architecture</a>
26
26
  <a href="tutorials/index.html">Tutorials</a>
27
- <a href="reviewers.html" aria-current="page">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -371,6 +370,6 @@ Nodes: 6/6 passed
371
370
  </div>
372
371
  </footer>
373
372
 
374
- <script type="module" src="assets/progress.mjs"></script>
373
+ <script type="module" src="assets/progress.mjs?v=4"></script>
375
374
  </body>
376
375
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>Tutorials — the series</title>
7
7
  <meta name="description" content="Seven tutorials taking a new engineer from an empty terminal to pull requests that carry proof.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="tutorials">
11
12
  <a class="skip" href="#series">Skip to the series</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap-wide topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -177,6 +176,6 @@
177
176
  </div>
178
177
  </footer>
179
178
 
180
- <script type="module" src="../assets/progress.mjs"></script>
179
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
181
180
  </body>
182
181
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V1 — Getting started with recipes</title>
7
7
  <meta name="description" content="Video one of the series: one CLI drives the wallet and proves what happened. With the same checklist as the How it works walkthrough.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="start">
11
12
  <a class="skip" href="#steps">Skip to the checklist</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -208,6 +207,6 @@
208
207
  </div>
209
208
  </footer>
210
209
 
211
- <script type="module" src="../assets/progress.mjs"></script>
210
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
212
211
  </body>
213
212
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V2 — Reading the evidence</title>
7
7
  <meta name="description" content="Walk one finished run file by file, and learn the two rules that make a green verdict worth believing.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v2">
11
12
  <a class="skip" href="#steps">Skip to the checklist</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -63,8 +62,7 @@
63
62
  <div class="note plain">
64
63
  <span class="note-title">This page and the reviewer's guide</span>
65
64
  <p>
66
- This is the tour: what each file is for, in the order you open them.
67
- <a href="../reviewers.html">For Reviewers</a> is the reference — a real bundle annotated line by line,
65
+ This is the tour: what each file is for, in the order you open them. is the reference — a real bundle annotated line by line,
68
66
  including a screenshot that passed while recording that its capture had degraded. Read this first,
69
67
  keep that one open during a review.
70
68
  </p>
@@ -204,6 +202,6 @@
204
202
  </div>
205
203
  </footer>
206
204
 
207
- <script type="module" src="../assets/progress.mjs"></script>
205
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
208
206
  </body>
209
207
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V3 — Skills and your team's library</title>
7
7
  <meta name="description" content="Install the agentic skills into a checkout and declare your team's recipe library, with the perps library as the worked example.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v3">
11
12
  <a class="skip" href="#steps">Skip to the checklist</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -254,6 +253,6 @@ Inspect: mm-harness run &lt;recipe&gt; --describe
254
253
  </div>
255
254
  </footer>
256
255
 
257
- <script type="module" src="../assets/progress.mjs"></script>
256
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
258
257
  </body>
259
258
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V4 — Cook a recipe from an acceptance criterion</title>
7
7
  <meta name="description" content="Turn one acceptance criterion into a proof with the recipe-cook skill: discover, author, validate, run.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v4">
11
12
  <a class="skip" href="#steps">Skip to the checklist</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -192,6 +191,6 @@
192
191
  </div>
193
192
  </footer>
194
193
 
195
- <script type="module" src="../assets/progress.mjs"></script>
194
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
196
195
  </body>
197
196
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V5 — PR QA review from one link</title>
7
7
  <meta name="description" content="Give the review skill one pull request URL and get a per-criterion verdict table backed by on-device evidence.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v5">
11
12
  <a class="skip" href="#flow">Skip to the flow</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -160,6 +159,6 @@
160
159
  </div>
161
160
  </footer>
162
161
 
163
- <script type="module" src="../assets/progress.mjs"></script>
162
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
164
163
  </body>
165
164
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V6 — Release validation</title>
7
7
  <meta name="description" content="Validate one team's changes on a frozen release candidate, with a four-verdict vocabulary that includes NOT RUN.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v6">
11
12
  <a class="skip" href="#flow">Skip to the flow</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -162,6 +161,6 @@
162
161
  </div>
163
162
  </footer>
164
163
 
165
- <script type="module" src="../assets/progress.mjs"></script>
164
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
166
165
  </body>
167
166
  </html>
@@ -5,7 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title>V7 — A ticket end to end</title>
7
7
  <meta name="description" content="One real ticket from assignment to a pull request that carries proof, and what the reviewer sees.">
8
- <link rel="stylesheet" href="../assets/style.css">
8
+ <link rel="icon" href="../assets/metamask-fox.svg" type="image/svg+xml">
9
+ <link rel="stylesheet" href="../assets/style.css?v=4">
9
10
  </head>
10
11
  <body data-progress-page="v7">
11
12
  <a class="skip" href="#steps">Skip to the checklist</a>
@@ -13,18 +14,16 @@
13
14
  <header class="topbar">
14
15
  <div class="wrap topbar-inner">
15
16
  <a class="brand" href="../index.html">
16
- <span class="brand-mark" aria-hidden="true"></span>
17
+ <img class="brand-mark" src="../assets/metamask-fox.svg" alt="" width="22" height="22">
17
18
  <span class="brand-name">recipes</span>
18
19
  </a>
19
20
  <nav class="nav" aria-label="Main">
20
21
  <a class="nav-cta" href="../index.html#prompt">Quick start</a>
21
22
  <a href="../how-it-works.html">How it works</a>
22
- <a href="../recipes.html">Recipe anatomy</a>
23
- <a href="../perps.html">Perps</a>
23
+ <a href="../perps.html">Team / Perps</a>
24
24
  <a href="../cheatsheet.html">Cheatsheet</a>
25
25
  <a href="../architecture.html">Architecture</a>
26
26
  <a href="index.html" aria-current="page">Tutorials</a>
27
- <a href="../reviewers.html">For Reviewers</a>
28
27
  </nav>
29
28
  </div>
30
29
  </header>
@@ -181,6 +180,6 @@
181
180
  </div>
182
181
  </footer>
183
182
 
184
- <script type="module" src="../assets/progress.mjs"></script>
183
+ <script type="module" src="../assets/progress.mjs?v=4"></script>
185
184
  </body>
186
185
  </html>