@deeeed/metamask-harness 0.2.0 → 0.3.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 (109) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +20 -17
  3. package/{orchestration → adapters}/core/cleanup.sh +2 -2
  4. package/{orchestration → adapters}/core/inject.sh +8 -8
  5. package/{orchestration → adapters}/extension/cleanup.mjs +1 -1
  6. package/{orchestration → adapters}/extension/console-tail.mjs +3 -0
  7. package/{orchestration → adapters}/extension/ensure-browser.sh +4 -4
  8. package/{orchestration → adapters}/extension/inject.mjs +27 -31
  9. package/{orchestration → adapters}/extension/launch.sh +4 -4
  10. package/{orchestration → adapters}/extension/live.sh +5 -5
  11. package/{orchestration → adapters}/extension/readiness.mjs +12 -2
  12. package/{orchestration → adapters}/extension/refresh-build.sh +1 -1
  13. package/{orchestration → adapters}/extension/seed-fixture.sh +1 -1
  14. package/{orchestration → adapters}/extension/start-watch.sh +7 -7
  15. package/{runner → adapters}/extension/verify.sh +11 -11
  16. package/{orchestration → adapters}/extension/wallet-fixture-state.cjs +2 -2
  17. package/{orchestration → adapters}/manifest.json +96 -96
  18. package/{library/actions → adapters}/mobile/bridge-runtime/cdp-bridge.cjs +5 -5
  19. package/{orchestration → adapters}/mobile/cleanup.sh +3 -3
  20. package/{orchestration → adapters}/mobile/inject.sh +22 -24
  21. package/adapters/mobile/open-device.sh +250 -0
  22. package/{orchestration/compat-overlays → adapters/mobile/overlay/compat}/README.md +13 -4
  23. package/adapters/mobile/prewarm-bundle.sh +95 -0
  24. package/adapters/mobile/start-metro.sh +228 -0
  25. package/{runner → adapters}/mobile/verify.sh +6 -6
  26. package/adapters/mobile/wait-for-bridge.sh +108 -0
  27. package/adapters/mobile/yarn-setup.sh +20 -0
  28. package/{orchestration/lib → adapters/shared}/cli-ux.sh +5 -9
  29. package/{orchestration/lib → adapters/shared}/log-tui.mjs +57 -1
  30. package/{orchestration/lib → adapters/shared}/open-debug.mjs +32 -10
  31. package/{orchestration/lib → adapters/shared}/resolve-farmslot-ports.sh +47 -0
  32. package/adapters/shared/sync-wallet-fixture.sh +78 -0
  33. package/bin/mm-harness +5 -6
  34. package/docs/CLI-SPEC.md +41 -2
  35. package/docs/architecture.md +69 -38
  36. package/docs/runtime-file-conventions.md +3 -3
  37. package/library/actions/core/perps/_controller.mjs +1 -1
  38. package/library/actions/extension/platform/cdp.mjs +2 -2
  39. package/library/actions/extension/wallet/ensure_unlocked.mjs +1 -1
  40. package/library/actions/mobile/platform/bridge.mjs +1 -1
  41. package/library/actions/mobile/wallet/ensure_unlocked.mjs +1 -1
  42. package/library/actions/mobile/wallet/setup.mjs +2 -2
  43. package/library/library.json +1 -1
  44. package/package.json +8 -8
  45. package/{orchestration → src/adapters}/extension/runtime-decision.ts +5 -5
  46. package/{orchestration → src/adapters}/extension/runtime.ts +1 -1
  47. package/src/adapters/mobile/prepare.ts +210 -0
  48. package/{orchestration → src/adapters}/mobile/runtime-decision.ts +11 -3
  49. package/{runner/src → src}/adapters.ts +3 -3
  50. package/{orchestration/lib/cli-color.mjs → src/cli-color.ts} +21 -13
  51. package/{orchestration/lib/cli-commands.mjs → src/cli-commands.ts} +52 -45
  52. package/{orchestration/lib/cli-version.mjs → src/cli-version.ts} +35 -17
  53. package/{runner/src → src}/cli.ts +25 -18
  54. package/src/commands/debug.ts +61 -0
  55. package/src/commands/fixtures.ts +196 -0
  56. package/{runner/src → src}/commands/launch.ts +185 -41
  57. package/src/commands/logs.ts +86 -0
  58. package/{runner/src → src}/commands/shared.ts +26 -26
  59. package/{runner/src → src}/harness.ts +97 -10
  60. package/src/index.ts +15 -0
  61. package/{runner/src → src}/live-adapter-contract.ts +1 -1
  62. package/{runner/src → src}/mm-harness-cli.ts +19 -3
  63. package/{runner/src → src}/paths.ts +2 -2
  64. package/{orchestration/lib/progress.mjs → src/progress.ts} +31 -21
  65. package/docs/extension-runtime-commands.md +0 -60
  66. package/docs/harness-cli.md +0 -43
  67. package/orchestration/compat-overlays/mobile/README.md +0 -13
  68. package/orchestration/doctor.mjs +0 -72
  69. package/orchestration/lib/cli-home.mjs +0 -354
  70. package/orchestration/lib/recipe-paths.mjs +0 -26
  71. package/orchestration/mobile/launch.sh +0 -137
  72. package/orchestration/mobile/live.sh +0 -125
  73. package/orchestration/porcelain/metamask-recipe +0 -99
  74. package/orchestration/porcelain/mm-recipe +0 -1591
  75. package/orchestration/porcelain/mme-recipe +0 -1181
  76. package/runner/src/commands/debug.ts +0 -44
  77. package/runner/src/commands/fixtures.ts +0 -99
  78. package/runner/src/commands/logs.ts +0 -60
  79. package/runner/src/index.ts +0 -6
  80. /package/{orchestration → adapters}/extension/launch-browser.cjs +0 -0
  81. /package/{orchestration → adapters}/extension/pin-remote-flags.cjs +0 -0
  82. /package/{orchestration → adapters}/extension/sidepanel-toggle.sh +0 -0
  83. /package/{orchestration → adapters}/extension/snapshot-dist.sh +0 -0
  84. /package/{library/actions → adapters}/mobile/bridge-runtime/lib/cdp-eval.cjs +0 -0
  85. /package/{library/actions → adapters}/mobile/bridge-runtime/lib/config.cjs +0 -0
  86. /package/{library/actions → adapters}/mobile/bridge-runtime/lib/issue-capture.cjs +0 -0
  87. /package/{library/actions → adapters}/mobile/bridge-runtime/lib/target-discovery.cjs +0 -0
  88. /package/{library/actions → adapters}/mobile/bridge-runtime/lib/ws-client.cjs +0 -0
  89. /package/{library/actions → adapters}/mobile/bridge-runtime/setup-wallet.sh +0 -0
  90. /package/{library/actions/mobile/app-overlay → adapters/mobile/overlay}/app/dev-tools/AgenticService/AgentStepHud.tsx.patch +0 -0
  91. /package/{library/actions/mobile/app-overlay → adapters/mobile/overlay}/app/dev-tools/AgenticService/AgenticService.ts.patch +0 -0
  92. /package/{orchestration/compat-overlays/mobile → adapters/mobile/overlay/compat}/rn81-message-event-source.patch +0 -0
  93. /package/{orchestration/lib → adapters/shared}/activate-repo-node.sh +0 -0
  94. /package/{orchestration/lib → adapters/shared}/ensure-runner-deps.sh +0 -0
  95. /package/{orchestration/lib → adapters/shared}/harness-path.sh +0 -0
  96. /package/{orchestration/lib → adapters/shared}/hash-helpers.sh +0 -0
  97. /package/{orchestration/lib → adapters/shared}/json-field.sh +0 -0
  98. /package/{orchestration/lib → adapters/shared}/path-defaults.json +0 -0
  99. /package/{orchestration → src/adapters}/extension/ensure-ready.ts +0 -0
  100. /package/{orchestration → src/adapters}/extension/extension-id.ts +0 -0
  101. /package/{orchestration → src/adapters}/mobile/deps-markers.ts +0 -0
  102. /package/{runner/src → src}/completions-cache.ts +0 -0
  103. /package/{runner/src → src}/doctor.ts +0 -0
  104. /package/{runner/src → src}/heal-bounds.ts +0 -0
  105. /package/{runner/src → src}/manifest.ts +0 -0
  106. /package/{runner/src → src}/recording-target.ts +0 -0
  107. /package/{runner/src → src}/run-recording.ts +0 -0
  108. /package/{runner/src → src}/runner.ts +0 -0
  109. /package/{runner/src → src}/types.ts +0 -0
@@ -1,99 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- SOURCE="${BASH_SOURCE[0]}"
4
- while [ -L "$SOURCE" ]; do
5
- SOURCE_DIR="$(cd "$(dirname "$SOURCE")" && pwd -P)"
6
- TARGET="$(readlink "$SOURCE")"
7
- if [[ "$TARGET" == /* ]]; then
8
- SOURCE="$TARGET"
9
- else
10
- SOURCE="$SOURCE_DIR/$TARGET"
11
- fi
12
- done
13
- SCRIPT_DIR="$(cd "$(dirname "$SOURCE")" && pwd -P)"
14
- # This script lives at <root>/orchestration/porcelain/; the runner root is two up.
15
- RUNNER_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
16
-
17
- ENSURE_DEPS="$RUNNER_DIR/orchestration/lib/ensure-runner-deps.sh"
18
- if [ -f "$ENSURE_DEPS" ]; then
19
- # shellcheck disable=SC1090
20
- bash "$ENSURE_DEPS" "$RUNNER_DIR"
21
- fi
22
-
23
- if [ "${1:-}" = "mobile" ]; then
24
- shift
25
- exec "$RUNNER_DIR/bin/mm-recipe" "$@"
26
- fi
27
- if [ "${1:-}" = "extension" ]; then
28
- shift
29
- exec "$RUNNER_DIR/bin/mme-recipe" "$@"
30
- fi
31
-
32
- find_protocol_root() {
33
- local start="$1"
34
- local dir
35
- dir="$(cd "$start" && pwd -P)"
36
- while [ "$dir" != "/" ]; do
37
- if [ -f "$dir/packages/recipe-harness/package.json" ] && [ -f "$dir/packages/protocol/package.json" ]; then
38
- printf '%s\n' "$dir"
39
- return 0
40
- fi
41
- if [ -f "$dir/farmslot/packages/recipe-harness/package.json" ] && [ -f "$dir/farmslot/packages/protocol/package.json" ]; then
42
- printf '%s\n' "$dir/farmslot"
43
- return 0
44
- fi
45
- dir="$(dirname "$dir")"
46
- done
47
- return 1
48
- }
49
-
50
- node_can_run_source_typescript() {
51
- # Node refuses type-stripping for files under node_modules (ERR_UNSUPPORTED_NODE_
52
- # MODULES_TYPE_STRIPPING). When this runner is installed as a dependency, cli.ts
53
- # lives under node_modules and cannot run under plain node — a /tmp probe would be a
54
- # false positive. Skip the node-source path in that case and fall through to dist/tsx.
55
- case "$RUNNER_DIR/" in
56
- */node_modules/*) return 1 ;;
57
- esac
58
- local probe_dir probe_file
59
- probe_dir="$(mktemp -d "${TMPDIR:-/tmp}/metamask-recipe-node-ts.XXXXXX")"
60
- probe_file="$probe_dir/probe.ts"
61
- printf 'const answer: number = 42; if (answer !== 42) process.exit(1);\n' > "$probe_file"
62
- if ! node --no-warnings "$probe_file" >/dev/null 2>&1; then
63
- rm -rf "$probe_dir"
64
- return 1
65
- fi
66
- rm -rf "$probe_dir"
67
- }
68
-
69
- if [ -f "$RUNNER_DIR/dist/cli.js" ]; then
70
- exec node "$RUNNER_DIR/dist/cli.js" "$@"
71
- fi
72
-
73
- TSX_BIN="${TSX_BIN:-$RUNNER_DIR/node_modules/.bin/tsx}"
74
- if [ ! -x "$TSX_BIN" ] && [ -x "$RUNNER_DIR/../../.bin/tsx" ]; then
75
- TSX_BIN="$RUNNER_DIR/../../.bin/tsx"
76
- fi
77
- if [ ! -x "$TSX_BIN" ]; then
78
- if [ -z "${FARMSLOT_ROOT:-}" ] && [ -f "$RUNNER_DIR/.farmslot-root" ]; then
79
- FARMSLOT_ROOT="$(cat "$RUNNER_DIR/.farmslot-root")"
80
- fi
81
- if [ -z "${FARMSLOT_ROOT:-}" ]; then
82
- FARMSLOT_ROOT="$(find_protocol_root "$RUNNER_DIR" || find_protocol_root "$PWD" || true)"
83
- fi
84
- if [ -n "${FARMSLOT_ROOT:-}" ]; then
85
- FARMSLOT_ROOT="$(cd "$FARMSLOT_ROOT" && pwd -P)"
86
- TSX_BIN="$FARMSLOT_ROOT/node_modules/.bin/tsx"
87
- fi
88
- fi
89
-
90
- if node_can_run_source_typescript; then
91
- exec node --no-warnings "$RUNNER_DIR/runner/src/cli.ts" "$@"
92
- fi
93
-
94
- if [ -x "$TSX_BIN" ]; then
95
- exec "$TSX_BIN" "$RUNNER_DIR/runner/src/cli.ts" "$@"
96
- fi
97
-
98
- echo "metamask-recipe source checkout requires dist/cli.js, Node.js TypeScript type stripping, or a local tsx binary. Install dependencies normally, or set TSX_BIN/FARMSLOT_ROOT for local protocol co-development." >&2
99
- exit 1